Вниз
Скачать: 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.969 c
15-1203313694
Vladix
2008-02-18 08:48
2008.03.30
Визуализация секций uses


9-1168453494
DillerXX
2007-01-10 21:24
2008.03.30
Загрузка процессора


2-1204572618
Resident
2008-03-03 22:30
2008.03.30
Abs


2-1204283662
Yurij-7
2008-02-29 14:14
2008.03.30
Как правильно написать SQL


2-1204541274
Matveih1
2008-03-03 13:47
2008.03.30
Как сделать столбец в StringGrid не видимым




   Наверх