Вниз
Скачать: CL | DM;

Почему Application.Terminate у меня не работает? =(((   Найти похожие ветки 

 
Andrewtitoff ©   (2008-02-18 16:47) [0]

Здравствуйте!, мне нужно перезапустить программу..., но почему то вот так все замечательно работает:

procedure TForm1.Button1Click(Sender: TObject);
var
  FullProgPath: PChar;
begin
  FullProgPath := PChar(Application.ExeName);
 WinExec(FullProgPath, SW_SHOW);
 Application.Terminate;
end;

А вот так не работает... =(((
Еще один экземпляр запускается, но старый не закрывается...

procedure TMyChat.TcpServer1Accept(Sender: TObject;
 ClientSocket: TCustomIpClient);
var
......
begin
try
CurrentCommand:=ClientSocket.Receiveln;
......
if Copy(CurrentCommand,1,17)="Command : RESTART" then
begin
  FullProgPath := PChar(Application.ExeName);
WinExec(FullProgPath, SW_SHOW);
 Application.Terminate;
end;
........


 
Dmitry S ©   (2008-02-18 17:24) [1]

а не потому что Application.Terminate; выполняется в другом потоке?:)


 
Andrewtitoff ©   (2008-02-18 18:53) [2]

В смысле?, а как правильно то это сделать?


 
TIF ©   (2008-02-18 18:56) [3]

а не в If проблема? Может, условие не выполняется?


 
Григорьев Антон ©   (2008-02-18 20:03) [4]


> Andrewtitoff ©   (18.02.08 18:53) [2]
> В смысле?, а как правильно то это сделать?

В том смысле, что для приёма соединений TServerSocket создаёт отдельную нить, и событие OnAccept вызывается в ней. Application.Terminate ставит WM_Quit в очередь сообщений текущей нити, а так как у вас только главная нить его обрабатывает, получается, что от вызова этого метода в другой нити нет никакого эффекта.

Делайте так:
PostMessage(Application.Handle, WM_Close, 0, 0);


 
Andrewtitoff ©   (2008-02-18 23:02) [5]

2 TIF
Нет.., читай внимательнее...

2 Григорьев Антон
Пасибо!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
3-1194436367
tipman
2007-11-07 14:52
2008.03.30
Загрузка DataSet ручками


6-1183981829
tytus
2007-07-09 15:50
2008.03.30
Неправельный IP через шлюз.


15-1203306318
Dmitry S
2008-02-18 06:45
2008.03.30
Как объявить пустой массив?


2-1204470582
igroman
2008-03-02 18:09
2008.03.30
Печать с Memo


2-1204396606
максим
2008-03-01 21:36
2008.03.30
memo с канвой




   Наверх