Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Закрытие программы после ошибки [D7, WinXP]


NovaPS ©   (2004-06-28 20:56:00) 

В неком потоке возникает ошибка. Производится ее перехват и обработка. Далее в MessageBox пользователь выбирает проигнорировать и идти дальше или закрыть программу.
С первым случаем проблем нет, а вот со вторым (закрыть программу) возникли проблемы, т.е. программа ни в какую не хочет закрываться.

Пожалуйста объясните как это можно сделать?
Заранее благодарен.

Код:
...
 { Thread class description }
 TLEThread = class(TThread)
...
 protected
   procedure Execute; override;
 end;

 procedure CloseApp; forward;

var
 LEForm: TLEForm;
 LEThread: TLEThread;

...

procedure TLEForm.ProceedBtnClick(Sender: TObject);
begin
 if ThreadIsRunning = false then
 begin
   LEThread := TLEThread.Create(True);
   LEThread.Priority := tpIdle;
   LEThread.FreeOnTerminate := True;
   LEThread.Resume;
 end;
end;

procedure TLEThread.Execute;
...
   try
     LEForm.FTPClient.Get(LnksHostSitePath + TMPStr, LnksLocalPath + TMPStr, True);
   except
     on E: Exception do ErrMsg(E.Message, FTPCurHost, LnksHostSitePath + TMPStr, 3);
   end;

...
end;

procedure TLEThread.ErrMsg(ErrorText, Host, FName: String; PhaseType: Integer);
...
 MBoxResult := MessageBox(0, PChar(MsgText), 'Произошла ошибка!', MB_OKCANCEL);
 if MBoxResult = 2 then CloseApp;

end;

procedure CloseApp;
begin
 LEThread.Suspend; ???
 LEThread.Terminate; ???
 LEThread.Free; ???
 LEForm.Close; ???
end;

end.


NovaPS   (2004-06-28 22:04:00) [1]

Спасибо, помогло.


Mim1   (2004-06-28 21:59:00) [2]

Application.treminate в sincronyze;
или
TerminateProcess(getcurrentprocess);


Наверх

Титульная страница Поиск, карта сайта Написать письмо