![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выйти из OnExecute? [D6, WinXP]
olevacho_ © (2005-11-01 21:22:00)Написал обработчик событий OnExecute для tidtcpserver
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
form2.show;
end;
По задуму нужно при получении сигнала из другого компа показать другую форму с оповещением и проиграть звуковой файл.
Результат такой что приложение зависает. При трасировке оказалось что обработчик OnExecute выполняется по циклу несколько раз. Как сделать так чтобы этот обработчик выполнялся 1 раз?
Вот код отправки сигнала из idtcpclient из другого компа
idTCPClient1.Port:=1031;
idTCPClient1.Host:='192.168.1.13';
idTCPClient1.Connect;
idTCPClient1.WriteLn('1');
idTCPClient1.Disconnect;
Eraser (2005-11-02 01:18:00) [1]
> olevacho_ © (01.11.05 21:22)
Добавлю к [1], устанавливай Indy 10, иначе потом предстоит код переписывать.
http://www.indyproject.org/
Reindeer Moss Eater (2005-11-01 22:50:00) [2]Обработчик вызывается в контексте вторичного потока.
Делать какие-либо обращения оттуда к визуальным формам - запрещено минздравом.
По задуму нужно при получении сигнала из другого компа показать другую форму с оповещением и проиграть звуковой файл.
Ну и где здесь у тебя прием сигнала и его анализ?
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
form2.show;
end;