Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как выйти из 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо