|
||||||||||||||||||
|
Часть 1. Модель компонентных объектов, DirectDraw, объект IDirectDraw Модель компонентных объектов (СОМ)Перед углублением и изнурительные подробности DirectDraw сначала несколько слов о модели компонентных объектов - кратко СОМ. Delphi использует объектно-ориентированный язык программирования Object Pascal. Дизайнеры Delphi Объекты СОМ подробно освещены в разделе Delphi. Но для того, чтобы сэкономить ваше время, предоставлю краткий обзор. В Delphi вы работаете с объектом СОМ практически так же, как и с другим объектом. Объекты СОМ выглядят по сути как обычные объекты Delphi. Они имеют методы, которые вы вызываете для доступа к их услугам. Тем не менее, они не имеют полей или свойств. Главным отличием является то, что вы вызываете метод Release вместо метода Free, если вы хотите освободить эти объекты. Вы также никогда не создаете объект СОМ путем вызова конструктора. Вместо этого вы вызываете функцию в DirectDraw для создания главного объекта DirectDraw. Этот объект имеет дальнейшие методы, которые вы используете для создания других методов. Помимо этих двух вопросов вы можете фактически думать о них как об объектах Delphi. Объекты СОМ DirectDraw определяются в довольно сложном файле-заголовке на С, который поставляется с Game SDK. Однако я перевел это в модуль импорта, который вы можете использовать в Delphi. Это файл DDraw.pas на сопровождаю- DirectDrawDirectDraw может оказаться довольно каверзным в использовании. На первый взляд он кажется простым; существует только несколько СОМ-классов и они не имеют большого количества методов. Однако DirectDraw использует записи для Поэтому для того, чтобы помочь вам найти путь через минное поле, эта глава поэтапно проходит по всем стадиям создания приложения DirectDraw. Я представляю код. который добавляется на каждом этапе и использует его для объяснения аспекта DirectDraw, также как и рабочий пример, на основании которого можно строить свои собственные программы. Объект IDirectDrawDLL с DirectDraw фактически имеет самый простой из интерфейсов. Она экспортирует только одну функцию: DirectDrawCreate. Вы используете эту функцию для создания СОМ-объекта IDirectDraw, который открывает остальную часть API. Таким образом, первое, что должен сделать пример - создать один из таких объектов. Вы делаете это в обработчике события OnCreate формы и разрушаете его в OnDestroy. Лучшим местом хранения объекта является приватное поле главной формы. Листинг 1 содержит базовый код для осуществления этого. Листинг 1 Создание объекта IDirectDraw. {\DDDemol\Unitl -раз) Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DDraw ; TFormI = class (TForm) procedure FormCreate (Sender: TObject); DirectDraw : IDirectDraw ; // главный объект DirectDraw Formi: TFormI; procedure TFormI. FormCreate (Sender: TObject); { создать СОМ-объект DirectDraw } Raise Exception. Create ( 'Failed to create IDirectDraw object' ) ; procedure TFormI. FormDestroy (Sender: TObject); if Assigned ( DirectDraw ) then DirectDraw. Release ; |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил