Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.30;
Скачать: 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 вся ветка

Текущий архив: 2008.03.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
2-1204209051
kirillrepin
2008-02-28 17:30
2008.03.30
выборка по полю datetime


15-1203318814
Шмелъ
2008-02-18 10:13
2008.03.30
Периодика?


2-1204446203
махс
2008-03-02 11:23
2008.03.30
const в параметрах


15-1202826268
Real
2008-02-12 17:24
2008.03.30
Как обломать wine?


2-1204286904
TStas
2008-02-29 15:08
2008.03.30
Что возвращает WinExec?