туплю с WithEvents

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

туплю с WithEvents

Сообщение Sirik » 06.11.2005 (Вс) 10:45

не могу понять принцип работы, наведу код:

ФОРМА:
Код: Выделить всё
Option Explicit

Dim WithEvents h As Class1

Private Sub h_ok()
    MsgBox "yes"
End Sub

Private Sub Command1_Click()
    Dim g As New Class1
   
    Set g = New Class1
   
    g.geme 0
   
    Set g = Nothing
End Sub


Класс Class1:
Код: Выделить всё
Option Explicit

Public Event OK()

Public Function geme(t As Long)
    If t = 0 Then RaiseEvent OK
End Function


в чем трабл?

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.11.2005 (Вс) 11:04

если я прав, то моя ошибка была в том, что я объявлял разные классы
т.е. объявлял g а ловлю события h

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.11.2005 (Вс) 11:09

Код: Выделить всё
Option Explicit

Dim WithEvents g As Class1

Private Sub g_ok()
    MsgBox "yes"
End Sub

Private Sub Command1_Click()
    Set g = New Class1
   
    g.geme 0
   
    Set g = Nothing
End Sub

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.11.2005 (Вс) 11:13

спасибо Amed я так и понял

вот только один вопросик возник (чисто ради интереса):
если я хочу принимать event'ы то я объявляю так:
Dim WithEvents g As Class1
а если протсо без event, то
Dim g As New Class1

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.11.2005 (Вс) 14:26

Sirik, а в чём вопрос-то? :-)
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.11.2005 (Пн) 9:03

на вопрос я уже получил ответ, меня интересует в чём разница объявлений:

Dim WithEvents g As Class1

или

Dim g As New Class1

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.11.2005 (Пн) 10:18

Так ты же сам себе уже ответил:

Sirik писал(а):если я хочу принимать event'ы то я объявляю так:
Dim WithEvents g As Class1
а если протсо без event, то
Dim g As New Class1
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.11.2005 (Пн) 10:33

я забыл в конце знак вопроса поставить :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.11.2005 (Пн) 11:55

Разница в том, что в одном случае эвенты ловятся, а в другом нет.
Я просто не понимаю, чего тут можно не понять, после того, что ты уже написал :-|
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.11.2005 (Пн) 12:26

написать я то написал, но хотел 100% убедиться.
тема закрыта


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

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

Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 213

    TopList  
cron