
- •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.3.1 Базовые интерфейсы элементов управления ActiveX.
Элемент управления ActiveX является объектом СОМ, функционирующим чаще всего в составе внутреннего сервера. Конечно же, технология ActiveX налагает на элементы управления ряд дополнительных ограничений, но все они обусловлены существующими механизмами загрузки и функционирования элементов управления. Являясь частью визуального интерфейса приложения, элементы управления должны взаимодействовать с приложением, передавая ему адекватную информацию о действиях пользователя, реагировать самостоятельно на эти действия, корректно изменять собственное состояние в соответствии с сигналами приложения.
С
формальной точки зрения, в отличие от
OLE–документов, элемент
управления ActiveX обязан поддерживать
лишь интерфейс Iunknown.
Остальные интерфейсы включаются в эти
элементы на этапе их разработке только
в том случае, если они действительно
необходимы. Этим и объясняется
малый объем кода ActiveX-элементов по
сравнению с OLE–документами.
Однако для реализации основных функций,
присущих элементам управления ActiveX, для
них должно быть реализовано некоторое
подмножество из набора базовых
(стандартных) интерфейсов ActiveX,
показанных на рис. 7.1.
Назначение этих интерфейсов (а также
некоторых других, использующихся в
ActiveX-элементах) указано в табл. 7.2.
Доступ к методам интерфейсов осуществляется методом invoke интерфейса Idispatch.
Таблица 7. 2. Базовые интерфейсы элементов управления ActiveX |
|
Интерфейс |
Описание |
IOleObject |
Предоставляет важнейшие методы для взаимодействия элемента управления с контейнером |
IOleControl |
Поддерживает базовую функциональность элемента управления: установку свойств и реакцию на события |
IOlelnPlaceObject |
Управляет активизацией и деактивизацией элемента управления в контейнере |
IOlelnPlaceActiveObject |
Обеспечивает прямой канал для взаимодействия между элементом управления и окном-рамкой контейнера, содержащим данный элемент |
IObjectSafety |
Предоставляет два метода для установки режима безопасного использования элемента управления. Если установить этот режим, то, например, при загрузке через Internet браузер будет получать информацию о том, что данный элемент безопасен для используемых данных и для окружения, в котором он загружается |
IPersistPropertyBag |
Предоставляет методы для сохранения и загрузки индивидуальных свойств элемента управления в хранилище |
IpersistStreamlnit |
Обеспечивает инициализацию хранилища, предназначенного для сохранения значений свойств элемента управления на основе использования потоков внутри хранилища |
IPersistStorage |
Обеспечивает для элемента управления ссылку на экземпляр хранилища, предоставленного контейнером для сохранения свойств элемента |
IPerPropertyBrowsing |
Предоставляет методы для передачи значений свойств элемента управления в страницу свойств |
ISimpleFrameSite |
Обеспечивает функционирование элемента управления как оконного элемента для размещения в нем других элементов управления AcitveX |
ISpecifyPropertyPages |
Содержит метод, возвращающий информацию о наличии и поддержке данным элементом управления страниц свойств |
IViewObject |
Обеспечивает взаимодействие элемента управления и контейнера для передачи сообщения контейнеру об изменениях во внешнем виде элемента управления |
IViewObject2 |
Расширение интерфейса IViewObject. Предоставляет информацию о размерах области прорисовки элемента управления |