Создание первого ActiveX элемента.

Домой Наверх Предыдущий Следующий

Добавление кода для сохранения свойств

Для сохранения свойств элемента между этапами разработки и запуска программы добавьте следующий код (как всегда в проект MyStar Project1.vbp):

Public Sub UserControl_WriteProperties(PropBag As PropertyBag)

PropBag.WriteProperty "N", m_intN, 3

PropBag.WriteProperty "M", m_intM, 1

End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

m_intN = PropBag.ReadProperty("N", 3)

m_intM = PropBag.ReadProperty("M", 1)

DrawStar m_intN, m_intM

End Sub

Как всегда, обсудим его. У объекта UserControl (как Вы помните, это тот самый объект, на котором мы рисуем наш ActiveX-элемент) есть два специальных метода: WriteProperties и ReadProperties. Как ясно из их названия, они предназначены для записи и для чтения свойств. Спрашивается, куда и откуда? Ответ содержится в параметрах этим методов, а именно в методе WriteProperties свойства записываются в переменную PropBag типа PropertyBag , а в методе ReadProperties - свойства читаются из этого самого PropBag. Почему же их в этот самый PropBag надо записывать и потом читать? Зачем все эти сложности? Для ответа вспомним, что происходит с нашим ActiveX-элементом, сколько раз и когда он рождается и умирает.

Действия программиста Что происходит с экземпляром ActiveX-элемента
Размещение ActiveX-элемента на форме (путём двойного щелчка на панели элементов). 1.Вызывается метод Initialize.
2.Вызывается метод InitProperties (в нем, как правило, устанавливаются стандартные начальные значения для ActiveX-элемента).
3.Создаётся экземпляр ActiveX-элемента времени разработки.
Установка программистом своих значений свойств для ActiveX-элемента Для созданного на предыдущем шаге экземпляра ActiveX-элемента изменяются свойства.
Запуск программы в среде Visual Basic'а. 1.Вызывается метод WriteProperties, который запишет новые свойства ActiveX-элемента, заданные программистом на предыдущем этапе, в объект PropBag типа PropertyBag.
2.Старый экземпляр ActiveX-элемента (тот, который был создан на этапе разработки нашим программистом) умирает.
Запущенная программа появляется на экране. 1.Создается новый экземпляр ActiveX-элемента.
2.Вызывается метод Initialize для нового экземпляра ActiveX'а.
3.Новый экземпляр ActiveX-элемента берёт свои свойства из объекта PropBag типа PropertyBag (таким образом этот новый экземпляр получает именно те значения свойств, которые были заданы программистом) путем вызова метода ReadProperties.
При работе программы возможно изменение свойств нашего ActiveX-элемента в результате действий пользователя или самой программы. Свойства ActiveX-элемента изменяются на какие-то другие.
Закрытие программы. Экземпляр, созданный на этапе запуска программы, уничтожается. Новые значения свойств никуда не сохраняются .
Возврат к этапу разработки программы. 1.Вызывается метод Initialize для нового экземпляра ActiveX'а.
2.Путем вызова метода ReadProperties новый экземпляр ActiveX-элемента берёт свои свойства из объекта PropBag типа PropertyBag (таким образом этот новый экземпляр получает именно те значения свойств, которые были заданы на этапе разработки программистом).
Далее

© Ушку ду Кашку

hidden/visible

Hosted by uCoz