Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.07.13;
Скачать: CL | DM;

Вниз

Аварийный выход из программы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
2-1378719857
Сергей
2013-09-09 13:44
2014.07.13
КАК ЗАДАТЬ РАНДОМ И ВЫВЕСТИ В ЛЭЙБЛ?


2-1378693783
Wadimka
2013-09-09 06:29
2014.07.13
Как сэмулировать нажатие кнопки _ (нижние подчеркивание)


3-1299765129
stas
2011-03-10 16:52
2014.07.13
синтаксис оракла


15-1387802363
Ламо777
2013-12-23 16:39
2014.07.13
Алгоритм распространения пламени


2-1379193818
Никита2013
2013-09-15 01:23
2014.07.13
Сохранение и загрузка StringGrid в файл