
- •7.6 Методические указания.
- •7.6.1 Элементы управления ActiveX
- •7.6.2 Особенности компонентного программирования с применением ActiveX.
- •7.6.3 Структура элементов ActiveX
- •7.6.3.1 Базовые интерфейсы элементов управления ActiveX.
- •7.6.3.2 Базовые интерфейсы контейнеров управляющих элементов ActiveX.
- •7.6.4. Использование существующих элементов ActiveX в среде Delphi.
- •7.6.4.1 Инсталляция существующих элементов ActiveX для работы в среде Delphi.
- •7.6.4.2 Деинсталляция установленных элементов ActiveX.
- •7.6.5 Реализация компонентов ActiveX в Delphi.
- •Procedure Initialize; override;
- •7.6.6 Создание собственных элементов ActiveX и форм ActiveForm
- •7.6.6.1 Преобразование компонента vcl в элемент ActiveX
- •7.6.6.2 Создание форм Active Form.
7.6.6 Создание собственных элементов ActiveX и форм ActiveForm
Элементы ActiveX в Delphi создаются на основе компонентов VCL или на основе форм. Во втором случае создаваемая форма называется ActiveForm и представляет собой набор визуальных и невизуальных компонентов.
7.6.6.1 Преобразование компонента vcl в элемент ActiveX
Наиболее простым способом создания элемента ActiveX является преобразование существующего компонента VCL в элемент ActiveX. Таким образом, если вам требуется создать какой-либо новый элемент ActiveX, то вначале следует создать компонент VCL [12], а затем преобразовать его в ActiveX.
Следует отметить, что напрямую в ActiveX могут быть преобразованы только те компоненты VCL, которые являются потомками TWinControl. В принципе можно создать элемент ActiveX на основе любого визуального компонента VCL, но эта задача достаточно сложна, и встречается нечасто. Поэтому здесь мы ее рассматривать не будем. Отметим лишь, что разработчик может создать такой элемент управления самостоятельно при помощи системы разработки Delphi ActiveX (DAX).
Преобразование компонента VCL в элемент ActiveX выполняется очень просто. Для этого используется специальный мастер, который запускается при выборе значка ActiveX Control на вкладке ActiveX окна диалога New Items. Напомним, что это окно открывается при выборе команды File | New главного меню Delphi IDE.
В
окне мастера ActiveX
Control Wizard
(рис. 7.
) задаются следующие параметры
создаваемого элемента:
имя класса VCL, на основе которого будет создан элемент ActiveX, - задается с помощью раскрывающегося списка VCL Class Name;
имя создаваемого элемента ActiveX - задается в поле ввода New ActiveX Name;
имя файла модуля - в поле ввода Implementation Unit;
имя файла проекта - в поле ввода Project Name;
вариант работы сервера с потоками - с помощью раскрывающегося списка Threading Model (см. п.5.6.2.4 лабораторной работы 1-TPR);
дополнительные опции - с помощью группы флажков ActiveX Control Options:
- Include Design-Time License - включает в элемент ActiveX лицензионную информацию;
- Include Version Information - включает в проект информацию о версии;
- Include About Box - включает окно диалога с информацией о разработчике.
После задания всех этих параметров и щелчка на кнопке ОК происходит автоматическое создание всех необходимых файлов: файла проекта (элементы ActiveX всегда входят в состав внутреннего сервера, поэтому генерируется файл проекта динамической библиотеки), библиотеки типов и модуля реализации. Для завершения создания элемента ActiveX следует просто откомпилировать проект.
В процессе создания элемента управления ActiveX из компонента мастер выполняет следующие действия:
определяет, в каком модуле содержится элемент управления VCL. Данный модуль передается компилятору, который создает специальную символьную информацию для описания свойств, событий и методов элемента управления VCL;
генерирует библиотека типов для проекта;
анализирует всю символьную информацию об элементе управления VCL и добавляет подходящие свойства и методы к интерфейсу и в библиотеку типов;
редактор библиотеки типов генерирует файл преобразованной библиотеки типов в соответствии с добавленными свойствами, событиями и методами;
мастер создает файл реализации элемента управления ActiveX. Данный файл содержит элемент управления TActivexcontrol. Кроме того, мастер автоматически создает так называемые пересылки (forwarders) свойств и методов интерфейса. Пересылки направляют вызовы метода из элемента управления ActiveX в элемент управления VCL, а события - из элемента управления VCL в элемент ActiveX.
Созданный таким образом элемент ActiveX регистрируется в системе как было описано выше, и затем инсталлируется в палитру компонентов Delphi.