Перехват событий из класса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Перехват событий из класса

Сообщение X-BOND » 04.06.2003 (Ср) 16:01

Возможно я не новичок, но вопрос наверно глупый.

Как перехватывать ЭВЕНТЫ из КЛАССА :roll:

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 04.06.2003 (Ср) 16:20

Не совсем понятен вопрос

На сколько я понимаю, у тебя в MyClass1 описаны ивенты, которые ты кидаешь. В MyClass2 у тебя определена глобальная переменная as MyClass1 и ты хочешь словить ее ивенты.

Тогда добавь в описание ключевое слово WithEvents

Пример:
Private WithEvents m_MyVar as MyCalss1

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 04.06.2003 (Ср) 17:02

Допустим у меня есть класс clsTimer
где прописан Эвент
Public Event OnTime

Класс после запуска начинает гинерировать импульсы с интервалом в 2 сек. и при этом происходит RaiseEvent OnTime

Где и как мне прехватить это событие?

Допустим, у формы есть событие MouseMove
и если написать процедуру:
Form_MouseMove(X as ......
MsgBox "Мыша дернулась"
End Sub

то каждый раз при наведении мышки на форму будет выскакивать сообщение.

С классами что-то похожее, или там совсем другой принцип?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 04.06.2003 (Ср) 19:13

Ну! Все правильно.
Где ты хочешь ловить эти сообщения? Допустим на своей основной форме.
Там ты объявляешь глобальную переменную

Код: Выделить всё
Private WithEvents m_MyTimer as clsTimer


Инициализишь ее где-нить (например на загрузке формы)

У тебя в твоем комбо, где обычно перечислены контролы, от которых ты ловишь ивенты появится m_MyTimer. А в правом, как и положено, все его объявленные ивенты. Дальше ты и сам знаешь, что делать:

Код: Выделить всё
Private Sub m_MyTimer_OnTime()
    Msgbox "Словили ивент от собственного таймера!"
end sub


Все понятно или остались вопросы?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 04.06.2003 (Ср) 20:03

Все очень понятно.
Большое спасибо :wink:

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 05.06.2003 (Чт) 9:18

Большое пожалуйста.
Всегда рады.
Приходите еще! :D


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 135

    TopList