Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отловить события у класса 
:(
    Опции темы
-Mikle-
Дата 4.10.2004, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Привет!
Когда дело имеем с окном, то отловить события, которые приходят на окно, не составляет особого труда. Т.е. мы можем в одной ф-ии видеть ВСЕ события которые возникат в окне. А вот как это сделать, когда мы имеем дело с классами? Как "направить" ВСЕ события на одну функцию?

Например, есть Class1 и Class2. Class1 например такого содержания:
Код
'--Begin Class1 Module
dim cBC as long
Event ChangeProperty(PropertyName as string)
Event ChangeBackColor(OldValue as long, NewValue as long)

property let BackColor(val as long)
  RaiseEvent ChangeBackColor(cBC, val)
  cBC=val
  RaiseEvent ChangeProperty("BackColor")
end property
'--End Class1 Module


Это в модуле Class2:
Код
'--Begin Class2 Module
dim withevents Cls1 as class1

sub Cls1_ChangeProperty(PropertyName as string)
  ....
end sub

sub Cls1_ChangeBackColor(OldValue as long, NewValue as long)
  ....
end sub
'--End Class2 Module


В приведенном примере я ловил события от моего класса, в оригинале же, заранее не известно какие события могут возникнуть.
Каким образом можно сделать так, чтоб в Class2 события приходили в одну ф-ию?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
shilnik
Дата 6.10.2004, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 22.12.2003

Репутация: нет
Всего: 1



А если так:
Код

'--Begin Class2 Module
dim withevents Cls1 as class1

sub Cls1_ChangeProperty(PropertyName as string)
 cls1Event
end sub

sub Cls1_ChangeBackColor(OldValue as long, NewValue as long)
 cls1Event
end sub

sub cls1Event
...
End sub

'--End Class2 Module



--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Akina
Дата 7.10.2004, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



shilnik
Тогда уж так:

Код
--Begin Class2 Module
dim withevents Cls1 as class1

sub Cls1_ChangeProperty(PropertyName as string)
cls1Event PropertyName
end sub

sub Cls1_ChangeBackColor(OldValue as long, NewValue as long)
cls1Event ,OldValue, NewValue
end sub

sub cls1Event(PropertyName as string = "", OldValue as long = 0, NewValue as long = 0)
...
End sub

'--End Class2 Module


Это сообщение отредактировал(а) Akina - 7.10.2004, 08:56


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
shilnik
Дата 11.10.2004, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 22.12.2003

Репутация: нет
Всего: 1



2Akina
Ну если говорить конкретнее то да, так.


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
-Mikle-
Дата 11.10.2004, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Ребята, спасибо...
но я написал в вопросе, что
Цитата(Mikle @ 4.10.2004, 12:37)
В приведенном примере я ловил события от моего класса, в оригинале же, заранее не известно какие события могут возникнуть.

Короче, мне нужно используя VB получить интерфейс класса. Например так, как в ObjectBrowser...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0789 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.