На этом шаге мы рассмотрим свойства элементов ActiveX.
ActiveX-элементы являются программируемыми за счет поддержки свойств, методов и событий. Обычно они предоставляют диспетчерский интерфейс, что позволяет их использовать во многих языках программирования и создания сценариев.
В стандартах ActiveX определен набор стандартных свойств (stock properties), общих для многих элементов управления, например шрифт текста, цвет активных элементов и фона. В отличие от стандартных, специальные свойства (custom properties) различны у разных элементов и зависят от их конкретной функциональности.
Свойства окружения (ambient properties) предоставляют элементу управления информацию о внешнем виде контейнера. Они позволяют элементу гармонично "вписываться" в его окружение. Например, свойство BackColor хранит сведения о цвете фона контейнера. Элемент может воспользоваться этим значением и установить значение своего BackColor в тот же цвет, чтобы визуально не отличаться контейнера. Такие приемы определения и реагирования на свойств окружения контейнера активно приветствуются.
Элемент управления может реагировать на действия, генерируя события (events) - уведомления, передаваемые из него в контейнер. Интерфейс события определяется элементом, но реализуется в контейнере. Это исходящий интерфейс (outgoing interface).
Так же как и свойства, события делятся на стандартные и специальные. Стандартные события вызываются обычными действиями, например щелчком мыши или нажатием клавиши. Специальные события определяются элементом управления самостоятельно.
В большинстве ActiveX-элементов реализованы страницы свойств (property pages), предоставляющие пользователю графический интерфейс для изменения их свойств. На рисунке 1 показана одна из страниц элемента Microsoft Chart ActiveX.
Рис.1. Контейнер ActiveX Control Test Container
Каждая страница основана на шаблоне диалогового окна и представляет собой отдельный СОМ-объект с собственным CLSID.
Постоянство (или сериализация) свойств (property persistence) - одна из особенностей средств управления на базе ActiveX, позволяющая им считывать или записывать свои свойства из или в файл или поток. Приложение-контейнер, воспользовавшись сериализацией, сохранит свойства элемента управления даже после того, как приложение его уничтожило. Значения свойств можно позже извлечь из файла или потока и применить при создании нового элемента.
На следующем шаге мы рассмотрим особенности реализации COM-объектов.