Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Каждый класс кроме свойств и методов имеет набор собственных событий. События – это реакция объекта на действие системы, пользователя и других приложений. События, определяемые пользователем, могут объявляться как внутри модуля класса (в области GD окна Code класса) с помощью команды File\New\Event или кнопки окна Class Builder, так и внутри модуля формы одним и тем же оператором Event. Параметры, передаваемые процедуре события, должны быть указаны в той же строке объявления события. Например,
Public Event WWW()
Public Event XXX(ByVal A As Long, ByVal B As Long)
Для генерации (выполнения) события предназначен оператор RaiseEvent, которому в качестве параметра передается имя события. Например,
Public Sub Text1_Change()
RaiseEvent WWW 'Реализация события WWW
End Sub
Public Sub Command1_Click()
RaiseEvent XXX(500,300) 'Реализация события XXX
End Sub
Контейнер (модуль класса или формы), в котором используется объект, должен содержать процедуры-события.
Пример 59. Объявить событие в модуле класса, а запрограммировать его в модуле формы.
Пусть событие (назовем его MTS) имеет два параметра. Первый – числовой, второй – логический. Событие будет реализовываться в методе Long1. Выполните следующие действия.
· Создайте новый проект с шаблоном Standard EXE.
· С помощью команды Project\Add Class Module добавьте модуль класса с именем Class1 в проект, используя шаблон Class Module на закладке New.
· Поместите в него следующий код.
Public Event MTS(ByVal Percent As Single, ByRef Cancel As Boolean)
Public Sub Long1(ByVal f As Single, c As Boolean)
RaiseEvent MTS(f, c) 'Вызов события MTS с двумя параметрами
End Sub
· Теперь добавьте в область GD окна Code модуля формы следующий код:
Private WithEvents mW As Class1, nCancel As Boolean, r As Single
'Ключевое слово WithEvents означает, что объект mW содержит события
Private Sub Command1_Click()
nCancel = False
r = Rnd
Set mW = New Class1 'Создание нового объекта на основе класса
Call mW.Long1(r, nCancel) 'Обращение к методу Long1
Text2 = nCancel 'Выводим значение, возвращаемое из события
Set mW = Nothing
End Sub
Private Sub Form_Load()
Text1 = Format(r, "0 %")
Text2 = ""
End Sub
Private Sub mW_MTS(ByVal Percent As Single, _
Cancel As Boolean)
m% = CInt(100 * Percent)
Text1 = m & "%"
If m >= 50 Then Cancel = True
End Sub
8. Создание элемента управления ActiveX в Visual Basic. Отображаемые и пользовательские свойств и методы ActiveX-компонент. Передача события приложению–контейнеру. Регистрация компонент.
Дата публикования: 2014-12-28; Прочитано: 213 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!