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


         

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


Процедура Property Get вызывается всякий раз, когда программа обращается к значению свойства. Эта процедура читает значение закрытой переменной m_Caption и присваивает его свойству Caption. Для каждого свойства должны быть определены процедуры Property Get и Property Let, включающие приведенные строки. Они составляют минимальный механизм для установки или чтения значений свойств.

Конечно, в эти процедуры можно добавлять и код проверки допустимости значений. Значение свойства TextAlignmen должно быть в диапазоне от 0 до 9. На данный момент элемент управления позволяет пользователю ввести любое значение этого свойства в окне свойств. Добавим проверку допустимости значения в проце­дуру Property Let для свойства TextAlignment. Сам код прост: он отвергает любые значения меньше 0 и больше 8.

Программа 16.4. Код проверки допустимости свойства TextAlignment в процедуре Property Let

Public Property Let TextAlignment(ByVal New_TextAlignment As _

Integer)

If m_TextAlignment >=0 And m_TextAlignitient<=8 Then

   m_TextAlignment = New_TextAlignment

PropertyChanged "TextAlignment"

Else

MsgBox "Invalid value for this property"

  ' (Недопустимое значение для этого свойства)

End If

End Property

Оператор If проверяет допустимость введенного значения, и, если новое значение находится вне допустимого диапазона, попытка изменить свойство отклоняется. Измените процедуру Property Let согласно приведенной схеме и затем переключитесь на тестовую форму проекта. Выберите элемент управления FLEXLabel на форме, откройте окно свойств и установите свойство TextAlignment в заведомо недопустимое значение (13 или 1000, например). При попытке изменить свойство, установив его в недопустимое значение, элемент управления выдаст предупреждение и отклонит изменения. Пока не совсем понятно, как добиться, чтобы допустимые значения свойства отображались в раскрывающемся списке, как в других элементах управления VB? Это требует написания еще небольшого ко­личества кода, о чем чуть позже.




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