Главная страница
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.131 c
2-1204113712
ryden
2008-02-27 15:01
2008.03.30
Проблема с dll


2-1204445419
..::KraN::..
2008-03-02 11:10
2008.03.30
TOpenDialog


2-1204743273
timekiller
2008-03-05 21:54
2008.03.30
TDateTimePicker позиция курсора и текст после этой позиции


2-1204223376
arreke
2008-02-28 21:29
2008.03.30
Отправить письмо на email


2-1204396513
La-la-Land
2008-03-01 21:35
2008.03.30
Реестр. Как работать?