Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Контейнер и взаимодействие с ним
Управляющий элемент ActiveX не может существовать сам по себе, он всегда "живет" внутри своего контейнера и тесно взаимодействует с ним. Через свойства окружения (ambient properties) объект имеет доступ к информации о текущем состоянии своего "собственника". Контейнер поддерживает дополнительные методы, свойства и события, которые для разработчика выглядят как часть интерфейса элементов управления ActiveX.

Свойства окружения
Информация о состоянии контейнера доступна ActiveX-элементу через объект AmbientProperties, ссылка на который может быть получена через свойство Ambient объекта UserControl.

Например, свойство UserControl.Ambient.Backcoior отображает текущее значение цвета фона контейнера и обычно используется при отображении ActiveX-элемента. Грамотно написанный ActiveX-элемент должен вести себя в соответствии с текущим состоянием контейнера. Сообщение userControi_Ambientchanged извещает управляющий элемент
ActiveX об изменении значения какого-либо свойства окружения контейнера.

Дополнительные свойства
Дополнительные свойства (extender properties) предоставляются контейнером, но внешне выглядят как часть интерфейса элементов управления ActiveX. Разработчик ActiveX-элемента имеет доступ к дополнительным свойствам через свойство Extender объекта usercontroi. Спецификация элементов управления ActiveX требует, чтобы все контейнеры поддерживали следующие дополнительные свойства: Name, Visible, Parent, Cancel, Default.

Для доступа к дополнительным свойствам всегда используется механизм позднего связывания (late-bound), т. к. на момент компиляции неизвестно с каким контейнером предстоит работать ActiveX-элементу.

Когда пользователь обращается к свойству (методу) ActiveX control, то первым управление получает объект Extender. Если он не поддерживает это свойство (метод), то вызывается обработчик ActiveX Controls.

Объект UserControl
ActiveX-элемент, созданный на Visual Basic, всегда содержит (агрегирует) объект UserControl. Размещение и настройка свойств составляющих (constituent) ActiveX-элемента производится с помощью редактора свойств.

Объект UserControl имеет стандартный интерфейс. Вы можете написать свои обработчики для событий, генерируемых этим объектом, предоставить для использования или переопределить стандартные свойства. Таким же образом ваш ActiveX-элемент может экспортировать методы, свойства и события составляющих компонентов.

Ключевые события
В процессе своего существования ActiveX-элемент получает извещение о ряде событий, генерируемых объектом UserControl. Наиболее важными являются:
- initialize. Самое первое событие, всегда происходит при создании ActiveX-элемента. В этот момент объект еще не имеет связи со своим контейнером.
- initProperties. Это событие извещает о размещении нового ActiveX-элемента в форме. В момент его прихода встроенный объект уже имеет связь со своим контейнером. Как правило, обработчик события выполняет начальную инициализацию свойств ActiveX-элемента.
- ReadProperties. При загрузке формы (как в DesignMode, так и в RunMode) встроенные в нее элементы создаются заново и их свойства инициализируются значениями, сохраненными в файле с расширением .frm. Событие ReadProperties извещает ActiveX-элемент о необходимости выполнить инициализацию. В этот момент объект имеет связь со своим контейнером.
- Resize. Обработчик этого события отвечает за реакцию ActiveX-элемента на изменение его размеров.
- Paint. Обработчик этого события отвечает за отображение внешнего вида ActiveX-элемента. При установке свойства userControi.AutoRedraw=True процесс визуализации происходит автоматически.
- writeProperties. Извещает ActiveX-элемент о необходимости сохранить текущие значения его свойств. Генерируется в режиме DesignMode при сохранении формы-контейнера.
- Terminate. Извещает ActiveX-элемент об его уничтожении.

Последовательность событий четко определена и характеризует текущее состояние объекта. При размещении в форме нового ActiveX-элемента, загрузке формы, запуске проекта на исполнение (переходе из DesignMode в RunMode) все объекты создаются заново, свойства инициализируются сохраненными значениями (или значениями по умолчанию).

     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru