Delphi 5. Учебник



         

Фабрики объектов в среде DAX



    Delphi предоставляет клиентам (контроллерам) объекты серверов СОМ посредством использования фабрик (factories) объектов, которые регистрируются с глобальным сервером СОМ Delphi СОМ Server (ComServer), определенным в модуле ComServ. Сервер СОМ Delphi обрабатывает все запросы объектов СОМ и создает запрашиваемые объекты, если такие зарегистрированы. Классы фабрик объектов используются для поддержки объектов СОМ, типизированных объектов СОМ, объектов автоматизации элементов управления, которые показаны ниже в порядке наследования.

    TComObjectFactory
         TActiveXPropertyPageFactory
         TTypedComObjectFactory
              TAutoObj ectFactory
                   TActiveXControlFactory
                        TActiveFormFactory

    Классы TActiveXControlFactory и TActiveFormFactory используются для регистрации элементов управления ActiveX и форм ActiveForm.
    Что же делают эти объекты? Они инкапсулируют интерфейс IClassFactory, используемый для создания объектов с ответствующего класса каждый раз, когда клиентское приложение запрашивает определенный объект. На эти классы также возложена ответственность за внесение записей в реестр Windows в соответствии с типом класса фабрики. Например, кла TActiveXControlFactory вносит в реестр информацию о сервере ActiveX и соответствующей библиотеке типов.
    Получив представление о средствах Delphi, поддерживающих разработку объектов ActiveX, рассмотрим инструмент Delphi для создания объектов ActiveX. Как это ни странно, но начать придется не с кодирования, а с документации. Если быть более точным, то сначала придется создать библиотеку типов, которая будет использоваться в Delphi для генерации шаблон кода, базирующегося на иерархии классов среды DAX. Позже созданный шаблон будет заполнен, откомпилирован, зарегистрирован и т.д. Следовательно, прежде чем приступить к созданию объектов ActiveX, следует усвоить, что такое информаци о типах и как использовать редактор библиотек типов (Type Library Editor) Delphi. Обозначенные аспекты описаны в следуй щем разделе.




Содержание  Назад  Вперед