Вниз
Скачать: 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.03 c
2-1204094569
zorik
2008-02-27 09:42
2008.03.30
Поймать появление чужого окна


2-1204573645
leha_1987
2008-03-03 22:47
2008.03.30
Горит лаба ... Завтра сдавать... PLEASE HELP


2-1204145846
Леха
2008-02-27 23:57
2008.03.30
Проблема с dll


2-1204193295
bigbro
2008-02-28 13:08
2008.03.30
WideString в элементах управления


2-1204639747
snake-as
2008-03-04 17:09
2008.03.30
Несколько клавиш




   Наверх