Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.11.2009, 07:40
Composh Composh вне форума
Прохожий
 
Регистрация: 09.06.2009
Сообщения: 9
Репутация: 10
По умолчанию Один обработчик события для нескольких компонентов.

У меня многопоточное приложение, динамически создается 10 компонентов.
Каждый компонент конектится к серверу, при успешном конекте в Even происходит событие OnConect.При возникновение этого события выполняется определенный код.Вопрос как для этих 10 компонентов создать один обработчик события, и возможно ли это вообще, если возможно как лучше синхронизировать?
Ответить с цитированием
  #2  
Старый 23.11.2009, 08:07
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Конечно возможно. Так и делаете при создании компонента прописываете адрес обработчика события где-то так:
Код:
procedure TMyForm.OnComponentCreate(Sender: TObject);
begin
 if TControl(Sender).Name = 'MyComponent1' then ;
 if TControl(Sender).Name = 'MyComponent2' then ;
end;

...
myComponent.OnCreate := OnComponentCreate;
...
А вот насчет синхронизации не подскажу.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 23.11.2009, 14:43
Composh Composh вне форума
Прохожий
 
Регистрация: 09.06.2009
Сообщения: 9
Репутация: 10
По умолчанию

Да спасибо)))теперь кто может с синхронизацией помочь?
сперва создаются потоки и компонент, идет авторизация, если авторизация успешна запускаем поток.Надо отсинхронизировать сообщение об успешной авторизации.
Ответить с цитированием
  #4  
Старый 23.11.2009, 14:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

У тебя многопоточное, или просто несколько компонентов соединения создается? Если первое, то передавай обработчик извне или сделай его методом базового класса-потока, а синхронизация через CriticalSection.
Если несколько соединений, но поток на самом деле один, то как тебе сказали (кстати, просто можно назначить один и тот же обработчик в инспекторе объектов, а внутри него уже разбюирать какой из компонентов его вызвал), а синхронизацию - через ту же criticalSection.
Ответить с цитированием
  #5  
Старый 23.11.2009, 14:55
Composh Composh вне форума
Прохожий
 
Регистрация: 09.06.2009
Сообщения: 9
Репутация: 10
По умолчанию

все спасибо все получилось
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025