![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() У меня многопоточное приложение, динамически создается 10 компонентов.
Каждый компонент конектится к серверу, при успешном конекте в Even происходит событие OnConect.При возникновение этого события выполняется определенный код.Вопрос как для этих 10 компонентов создать один обработчик события, и возможно ли это вообще, если возможно как лучше синхронизировать? |
#2
|
||||
|
||||
![]() Конечно возможно. Так и делаете при создании компонента прописываете адрес обработчика события где-то так:
Код:
procedure TMyForm.OnComponentCreate(Sender: TObject); begin if TControl(Sender).Name = 'MyComponent1' then ; if TControl(Sender).Name = 'MyComponent2' then ; end; ... myComponent.OnCreate := OnComponentCreate; ... Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Да спасибо)))теперь кто может с синхронизацией помочь?
сперва создаются потоки и компонент, идет авторизация, если авторизация успешна запускаем поток.Надо отсинхронизировать сообщение об успешной авторизации. |
#4
|
|||
|
|||
![]() У тебя многопоточное, или просто несколько компонентов соединения создается? Если первое, то передавай обработчик извне или сделай его методом базового класса-потока, а синхронизация через CriticalSection.
Если несколько соединений, но поток на самом деле один, то как тебе сказали (кстати, просто можно назначить один и тот же обработчик в инспекторе объектов, а внутри него уже разбюирать какой из компонентов его вызвал), а синхронизацию - через ту же criticalSection. |
#5
|
|||
|
|||
![]() все спасибо все получилось
![]() |