Форум: "Начинающим";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];
ВнизАварийный выход из программы Найти похожие ветки
← →
cr@nk © (2013-09-15 16:29) [0]Доброго времени суток.
Подскажите, как правильно организовать выход из программы при определённом условии.
Допустим, такая структура программы
нач проц1
некий код
вызов проц2
{ нач проц2
При определённом условии вызывается процедура 3
Внутри процедуры 3 проверяется переданный её параметр (назовём его error). И далее if error then Application.Terminate
конец проц2
}
конец проц1
Я думал, что Application.Terminate завершает работу программу сразу же, а на деле происходит выход в родительскую процедуру и дальнейшее выполнение кода и только потом завершение программы
На всякий случай приведу код процедуры, в которой должно произойти завершение приложенияprocedure TfmMain.LogFile(str: string; error: Byte = 0);
var
F: TextFile;
Text: string;
dt: TDateTime;
begin
AssignFile(F, FN);
if fileexists(FN) then
append(F)
else
Rewrite(F);
if error > 0 then
begin
WriteLn(F, DateTimeToStr(Now) + ": " + str);
WriteLn(F, DateTimeToStr(Now) + ": " + "Завершаем работу программы");
WriteLn(F, "========================================================");
CloseFile(F);
// отправка сообщения на почту
Application.Terminate;
end
else
begin
WriteLn(F, DateTimeToStr(Now) + ": " + str);
CloseFile(F);
end;
end;
← →
brother © (2013-09-15 16:40) [1]halt?
← →
Германн © (2013-09-15 16:43) [2]
> Я думал, что Application.Terminate завершает работу программу
> сразу же, а на деле
Terminate calls the Windows API PostQuitMessage function to perform an orderly shutdown of the application. Terminate is not immediate.
Если нечего терять, а позади Москва, вызывай Halt
← →
cr@nk © (2013-09-15 16:58) [3]Понял. Спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c