Создание программного интерфейса элемента управления ActiveX
Программный интерфейс ActiveX-элемента — это набор (public) методов, свойств и событий, посредством которых происходит взаимодействие объекта с его собственником, т. е. контейнером, или программой, которая использует этот контейнер.
По умолчанию интерфейс элемента управления ActiveX ограничивается набором методов, свойств и событий, предоставляемых контейнером. Задача разработчика заключается в добавлении новых (custom) свойств и методов, генерации событий и экспозировании, т. е выставлении на обозрение, собственных интерфейсов.
Свойства
Открытые свойства ActiveX-элемента необходимо реализовывать с помощью процедур Property Get и Property Let. Это требование связано с необходимостью извещать Visual Basic посредством вызова метода userControi.Pro-pertychanged при изменении значения свойства пользователем.
Выполнение этого требования необходимо по следующим причинам:
- если не вызвать метод PropertyChanged, то Visual Basic не передаст управление обработчику userControi_WriteProperties для сохранения результатов редактирования в DesignMode и они будут утрачены;
- значение свойства может быть одновременно доступно в нескольких местах, например, в окне Properties и в диалоговом окне Property Pages. Вызов метода PropertyChanged синхронизирует отображаемую информацию;
- если для свойства созданы обе процедуры (Property Get И Property Let), то оно автоматически высвечивается в окне Property. Диалоговое окно Property Attributes меню Tools позволяет установить дополнительные атрибуты свойства.
Сохранение и восстановление состояния объекта
Каждый раз, когда форма загружается для редактирования или исполнения, все встроенные объекты создаются заново. Для сохранения свойств интерфейса элемента управления ActiveX между сеансами редактирования и для инициализации при запуске в RunMode служит механизм Property Persistence. Его реализация связана с тремя событиями: initproperties, ReadProperties и WriteProperties, которые генерируются при размещении нового ActiveX-элемента в форме, считывании и сохранении состояния объекта, соответственно.
Обработчики UserControl_WriteProperties И UserControl_ReadProperties получают в качестве параметра объект PropertyBag. Он имеет два метода:
ReadProperty(Name As String, [DefaultValue]). WriteProperty(Name As String, Value, [DefaultValue]).
Используя эти методы, разработчик ActiveX-элемента должен реализовать механизм сохранения и восстановления состояния объекта. В методе WriteProperty аргумент DefaultValue применяется для экономии места при записи. WriteProperty проверяет текущее значение сохраняемого свойства с DefaultValue и при равенстве запись не производит. Рекомендуется для каждого свойства определять константу, равную значению по умолчанию,
И использовать ее При обработке событий InitProperties, WriteProperties И ReadProperties. В UserControl_ReadProperties необходимо предусмотреть проверку на корректность считываемых значений свойств.
<< Назад В начало Далее >> |