Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Firing events  (Прочитано 5318 раз)
0 Пользователей и 1 Гость смотрят эту тему.
relonar
Гость
« : 13-09-2004 17:00 » 

Не могу реализовать на С++Builder...

Стандартный СOM server c эвентами...
Генерируется класс TEvents_App, который содержит методы
корректного вызова эвентов Fire_Event.
И класс TAppImpl, который наследует TEvents_App.

То есть вызвать эвент с помощью Fire_Event я могу только
в implementation СOM-объекта...

А как я могу вызвать эвент из основной программы, в частности
мне надо оповестить клиентов что я изменил состояние или закрылся...
Help.
Записан
Anonymous
Гость
« Ответ #1 : 15-09-2004 14:28 » new

Сам вроде бы придумал... выковыривал из ActiveX  
может кому еще пригодится... А может все совсем неправильно, но главное - работает ... =)

В Implementation интерфейса в котором имеется доступ к эвентам.
создается процедура

__fastcall TAppImpl::OnSomethingEvent(TObject *Sender)
{
  Fire_Something(); //вызываем эвент
}


В форме в которой должны вызываться эвенты MainForm создается эвент как property:

private:
 TNotifyEvent FOnSomething;
__published:
 __property TNotifyEvent OnSomething = {read = FOnSomething, write = FOnSomethig};


В конструкторе TAppImpl, когда, собственно, создается сервер:

MainForm -> OnSomething = OnSomethingEvent;


Теперь когда меня вызвал клиент я могу вызывать эвенты FOnSomething(this),
остается только корректно проверять, привязан ли я сейчас к интерфейсу...

Поправьте меня если что не так.... =)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines