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


         

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


После процедур Property Let и Property Get

для всех свойств идет код инициа­лизации некоторых переменных.

Программа 16.5. Код инициализации

' Инициализация свойств элемента управления

Private Sub UserControl_InitProperties ()

Set Font = Ambient.Font

m_Caption = m_def_Caption

m_Effect = m_def_Effect

m_TextAlignment = m_def_TextAlignment

UserControl.BorderStyle = 1

UserControl.BackStyle = 1

End Sub

Операторы подпрограммы InitProperties() присваивают начальные значения закрытым переменным, которые представляют свойства элемента управления. Константы m_def_Caption, m_def_TextAlignment и m_def_Effect были определены ранее в программе. При помещении этого элемента управления на форму Visual Basic читает значения переменных m_Caption, m_TextAlignment и m_Effect и выво­дит их в соответствующих строках окна свойств элемента.

Сохранение и чтение значений свойств

Далее в тексте идут две интересные подпрограммы:

•  ReadProperties;

•   WriteProperties.

При изменении каких-либо свойств через окно свойств новые значения должны быть где-то сохранены. Зачем?

Приложение может (и обычно так и делает) изменять значения некоторых свойств во время выполнения. Но когда приложение останавливает свою работу и возвращается обратно в режим конструирования, свойства, измененные во время выполнения, должны принять те значения, которые они имели до старта программы - не значения по умолчанию, а те значения, которые они имели в режиме конструирования.

Visual Basic предусматривает специальный объект для сохранения всех значений свойств - PropertyBag. Этот объект предусматривает два метода: один - для сохранения значения свойства, другой - для его чтения. Разработчику элемента управления необязательно знать все подробности сохранения значений. Visual Basic сохраняет значения свойств и при запросе предоставляет их.

Первый метод имеет следующий синтаксис:

WriteProperty propertyName, value, defaultValue

где

propertyName - имя свойства (например, Effect), value

может иметь буквальное значение(1 или "some sizzling effect"), но почти всегда - это имя закрытой пере­менной, которая содержит значение свойства, defaultValue - значение свойства по умолчанию.




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