Чтобы упростить разработку базирующихся на стандарте
ActiveX технологий, необходима продуманная и спланированная среда которая
инкапсулирует в себе сложность множества интерфейсов и функции ActiveX
и OLE. Разработчики Delphi создали механизм, с помощью которого любой элемент
управления Windows, порожденный классом TWinControl, можно превратить в
элемент управления ActiveX. Вы можете использовать существующие компоненты
VCL и превратить их в элементы ActiveX, которые будут полезны в других
средах разработки, например в Visual Basic.
Для облегчения преобразования разработчики Delphi
создали среду Delphi ActiveX (DAX). Она упрощает разработку серверов СОМ,
типизированных объектов СОМ, серверов автоматизации, элементов управления
ActiveX, форм ActiveForm и страниц свойств. Давайте ближе познакомимся
со средой DAX.
Объекты ActiveX
в среде DAX
Ниже показана иерархия классов среды DAX, которые
поддерживают объекты СОМ, типизированные объекты СОМ, серверы автоматизации,
элементы управления ActiveX и формы ActiveForm.
TComObject
TTypedComObject
TAutoObject
TActiveXControl
TCustomForm
TActiveForm
Класс TCustomForm вместо класса TForm использован в качестве предка класса TActiveForm, так как в TCustomForm включены только свойства и методы, уместные для формы ActiveX.
Страницы свойств
в среде DAX
Другой частью среды DAX являются страницы свойств,
которые используются в различных средах программирования для изменения
значений свойств элементов управления на этапе разработки. Страницы свойств
часто оказываются устаревшими, так как среды программирования обладают
различными реализациями инспекторов свойств объектов, которые позволяют
оперировать свойствами объектов во время разработки приложения. Но несмотря
на это в создаваемые элементы управления ActiveX нужно всегда включать
страницы свойств. Даже если эти страницы не будут использоваться ни для
чего больше, то они хотя бы предоставят разработчику способ построения
специальных окон редактирования более сложных свойств элемента управления.
Как будет показано ниже, в Delphi можно довольно просто создавать страницы
свойств. Ниже показана иерархия классов, которая поддерживает создание
страниц свойств в Delphi.
TCustomForm
TPropertyPage
TActiveXProperty Page
[TMyPropertyPage]
При создании новая страница свойств будет наследована от класса TPropertyPage.
Фабрики объектов
в среде 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. Обозначенные аспекты описаны в следуй щем разделе.