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


         

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


' Значения свойств по умолчанию:

Const m_def_Caption = "3D Label"

Const m_def_Effect = 2

Const m_def_TextAlignment =  4

Дальше следуют объявления событий. Это события, которые были определены в первых двух окнах мастера и отображены на объект UserControl. Щелчок на элементе управления генерирует событие Click, которое передается приложению, как будто оно было сгенерировано самим элементом управления ActiveX. В списке определено несколько больше событий, но нет нужды повторяться.

' Объявления событий:

Event DblCllck()

Event Click()

Event KeyUp(KeyCode As Integer, Shift As Integer)

Event Keypress(KeyAscii As Integer)

Event KeyDown(KeyCode As Integer, Shift As Integer)

Event MouseUp(Button As Integer, Shift As Integer,

X As Single, Y As Single)

Event MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

Примечание

Если событие Click не было отображено на объект UserControl, то только UserControl будет видеть событие Click. Если нужно выполнять специальные действия, когда на элементе выполнен двойной щелчок, следует запрограммировать событие Click в коде элемента управления. Пользователь не сможет программировать событие Click, пока оно не будет инициировано из кода элемента управления.

В нашем элементе управления не требуется как-то по особенному использовать событие Click (и другие обычные события мыши и клавиатуры), поэтому предоставим их приложению, которое использует элемент управления ActiveX.

Установка и чтение значений свойств

Теперь рассмотрим несколько подпрограмм: по две для каждого свойства.

Программа 16.3. Процедуры свойства Caption

Public Property Get Caption() As String

Caption =

m_Caption

End Property

Public Property Let Caption(ByVal New Caption As String)

m_Caption = New Caption

PropertyChanged "Caption"

End Property

Каждое свойство определено двумя Public-процедурами:

•   Property Let,

•   Property Get.

Процедура Property Let вызывается каждый раз, когда свойство изменяется ли­бо через окно свойств (во времени конструирования) либо из программы (во время выполнения). При изменении свойства работает код, состоящий из двух строк. Первая строка получает значение, передаваемое в параметре процедуры (которое является новым значением свойства), и присваивает его закрытой переменной, которая представляет свойство в элементе управления. Остальной код видит только локальное свойство m_Caption, а не фактическое свойство. Вторая строка сообщает Visual Basic, что свойство изменило значение. Метод PropertyChanged важен и должен быть включен в процедуру Property Let, так как именно так VB сохраняет любые изменения свойства, сделанные во время конструирования, чтобы эти значения имели эффект во время выполнения.




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