Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизЗакрытие программы после ошибки Найти похожие ветки
← →
NovaPS © (2004-06-28 20:56) [0]В неком потоке возникает ошибка. Производится ее перехват и обработка. Далее в 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.
← →
Mim1 © (2004-06-28 21:59) [1]Application.treminate в sincronyze;
или
TerminateProcess(getcurrentprocess);
← →
NovaPS © (2004-06-28 22:04) [2]Спасибо, помогло.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.042 c