Управляющие элементы ActiveX


Расширение возможностей СОМ технологии привело к идее компонентного построения программ, что позволяет использовать только те части программы, которые нужны в настоящий момент для выполнения поставленной задачи.

С течением времени возможность создания элементов управления ActiveX была включена и в другие системы быстрой разработки приложений, включая и Delphi.

К настоящему времени пользователям доступны сотни управляющих элементов, разработанных десятками компаний, включая электронные таблицы, элементы для доступа к данным и многое другое. Используя технологию ActiveX, можно сегодня создавать приложения, собираемые из готовых компонентов.

Работа элементов ActiveX основана на реализации двух основных интерфейсов: lOleControl и lOleControlSite.

Технология создания ActiveX в Delphi (DAX) включает следующие возможности:
• создание элементов управление ActiveX;
• создание активных форм ActiveForm;
• инсталляцию готового элемента управления ActiveX в среду Delphi.

Основы работы управляющих элементов

Элементы управления ActiveX представляют собой динамические библиотеки-серверы, содержащие исполняемый код и исполняемые в адресном пространстве клиентского приложения (контейнера). Они включают уникальный идентификатор GUID и должны обладать возможностью саморегистрации в реестре Windows, которая фактически является основным отличием элементов управления ActiveX от СОМ-объектов.

Естественно, что взаимодействие между СОМ-субъектами: управляющим элементом и его контейнером определяется интерфейсами.

Спецификация управляющих элементов включает следующие аспекты их функционирования, для реализации которых предназначены свои группы интерфейсов:
• обеспечивающие пользовательский интерфейс;
• вызывающие методы управляющих элементов контейнером;
• посылающие события контейнеру;
• получающие данные о свойствах среды контейнера и обеспечивающие
доступ к свойствам управляющего элемента и их модификации
а) Для обеспечения пользовательского интерфейса предназначены такие интерфейсы, как: IOlelnPlaceActiveObject, IOlelnPlaceObject, IOleObject, IDa-
taObject, IViewObject2, IOleCache2, IRunnableObject, IPersistStorage.
б) Для обеспечения возможности вызова методов достаточно включить интерфейс IDispatch, с помощью метода Invoke которого можно вызывать необходимые методы. Фактически методы можно вызывать через виртуальную таблицу (раннее связывание) или через Dispatch интерфейс (позднее связывание).
в) Для обеспечения возможности посылки событий контейнеру следует
включить поддержку таких интерфейсов, как: IProvideClasslnfo2, IConnection-PointContainer, IConnectionPoint.
г) В элементы управления ActiveX добавлена возможность работы со свойствами, которых нет в OLE Automation.

Основы работы контейнеров

Контейнеры предназначены для включения управляющих элементов в приложения
Для решения проблемы взаимодействия компонентов и контейнеров введены понятия категорий компонентов (component categories), позволяющие управляющему элементу информировать компоненты о своих возможностях, помещая в реестр идентификаторы категорий — GUID (category identifier — CATID), гарантирующих способность выполнять некоторые функции. Анализируя CATID без создания экземпляров компонентов, контейнеры могут получать сведения о возможностях управляющих компонентов.

Контейнер должен иметь клиентский узел (client site), с помощью которого происходит связывание элемента ActiveX с контейнером.

Создание управляющих элементов ActiveX

Для создания управляющего элемента в Delphi можно воспользоваться соответствующим конструктором, позволяющим создавать элементы ActiveX из компонентов Delphi, являющихся наследниками класса TWinControl. Фактически конструктор позволяет создать необходимую «оболочку» вокруг компонента для превращения его в управляющий элемент.

Процесс создания элемента ActiveX состоит из следующих этапов:
• Создать с помощью конструктора «каркас» библиотеки, выполнив команды:
File\New\ ActiveX Library
• Запустить конструктор, создающий элемент ActiveX из VCL компонента:
File\New\ ActiveX Control.
• Выбрать компонент и заполнить сведения об элементе Для этого в открывшемся окне ActiveX Control Wizard из раскрывающегося списка VCL
Class Name следует выбрать зарегистрированный в Delphi компонент, который предполагается использовать для создания элемента управления ActiveX
• Скомпилировать и зарегистрировать элемент управления ActiveX, ко
мандами:
RunVRegister ActiveX Server
Созданный в результате компиляции файл получит расширение * Осх.

Создание активных форм

Delphi предоставляет также возможность создавать Active-формы, позволяющие помещать в нее несколько компонентов и все целиком использовать как элемент управления ActiveX.

Процесс создания элемента ActiveX состоит из следующих этапов:
• Создать экранную форму, выполнив команды: File\New\ ActiveForm
• Далее следует расположить на экранной форме нужные компоненты, написать соответствующий программный код и сохранить заготовку экран
ной формы.

Созданный файл получит расширение *.Осх.

Инсталляция управляющих элементов ActiveX
ComponetUmport ActiveX Control…
Откроется окно Import ActiveX, в верхней части которого будет представлен список библиотек элементов управления ActiveX, зарегистрированных в Windows. После выбора нужной из библиотек, Delphi прочитает ее библиотеку типов и составит список элементов управления.


Комментарии запрещены.




Статистика