Visual Basic 6. Руководство разработчика


         

Скелет элемента управления ActiveX - часть 9


Примечание

Зачем нужно указывать одновременно и собственно значение и значение по умолчанию при вызове метода? Дело в том, что VB сравнивает эти два параметра, и, если значения совпадают, то VB не выполняет сохранение (для ускорения процесса сохранения и восстановления значений свойства). При последующем запросе значения свойства с помощью метода ReadProperty Visual Basic просто возвращает значение по умолчанию.

Метод ReadProperty имеет следующий синтаксис:

ReadProperty propertyName, defaultValue

где propertyName — имя свойства, defaultValue — значение этого свойства, сохраненное ранее в объекте PropertyBag. В коде события Write Properties объекта UserControl необходимо вызвать метод WriteProperty для каждого из свойств. Аналогично, в коде процедуры ReadProperties для каждого свойства необходимо вызвать метод ReadProperty. Ниже приведен код процедур Write Properties и ReadProperties сгене­рированный мастером для элемента управления FLEXLabel.

Программа 16.6. Процедура ReadProperties элемента управления

' Загрузка значений свойств

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

Set Font == PropBag.ReadProperty("Font", Ambient.Font)

UserControl.BorderStyle = PropBag.ReadProperty ("BorderStyle", 0)

UserControl.BackStyle = PropBag.ReadProperty ("BackStyle", 1)

UserControl.Enabled = PropBag.ReadProperty("Enabled", True)

UserControl.ForeColor = PropBag.ReadProperty ("ForeColor", _

&H80000012)

UserControl.MousePointer = PropBag.ReadProperty ("MousePointer", 0)

UserControl.OLEDropMode = PropBag.ReadProperty ("OLEDropMode", 0)

Set Picture = PropBag.ReadProperty ("Picture", Nothing)

m_Caption = PropBag.ReadProperty("Caption", m_def_Caption)

m_Effect = PropBag.ReadProperty("Effect", m_def_Effect)

m_TextAlignment = PropBag.ReadProperty ("TextAlignment", _

m_def_TextAlignment)

UserControl.BackColor = PropBag.ReadProperty ("BackColor", _




Содержание  Назад  Вперед