![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Немедленно завершить работу приложения
qwerty2 © (2003-01-09 12:20:00)Использую блок try .. except для подсоединения к базе данных. В блоке except (то есть когда не удалось соединиться) выдаю соответственное сообщение после чего пишу Application.Terminate; Однако программа продолжает выполняться!
Dimka Maslov (2003-01-09 13:54:00) [21]>Delirium^...
Неважно какое termination у программы normal или abnormal, важно, при при вызове процедуры halt программа завершает работу сразу и без лишних вопросов.
Verg (2003-01-09 13:44:00) [22]procedure TApplication.Terminate;
begin
if CallTerminateProcs then PostQuitMessage(0);
end;
Короче, Application.Terminate просто ставит в очередсообщений комаду завершения и выполение процедуры продолжается.
Выход из приложения будет выполнен как только приложение вновь начнет обрабатывать сообщения из своей очереди.
Delirium^.Tremens (2003-01-09 13:03:00) [23]
> Dimka Maslov © (09.01.03 12:55)
> Для всех кто не знает.
Для всех кто не знает, использование Halt - Initiates abnormal termination of a program, т.е. - ненормальное завершение программы.
Dimka Maslov (2003-01-09 12:55:00) [24]Для всех кто не знает. Безоговорочное завершение программы из любого её места производится вызовом процедуры Halt. выдавать предупреждающее сообщение лучше до вызова Halt. В противном случае сообщения об ошибке вы не увидите.
Delirium^.Tremens (2003-01-09 12:34:00) [25]
> try
> Database1.Open;
> except
> ShowMessage("Ошибка");
> Application.Terminate;
abort;
> end;
NDeu (2003-01-09 12:34:00) [26]
> procedure TDataModule1.DataModuleCreate(Sender: TObject);
> begin
> try
> Database1.Open;
> except
> ShowMessage("Ошибка");
> Application.Terminate;
Exit;
> end;
> Query1.Open;
qwerty2 (2003-01-09 12:31:00) [27]выглядит примерно так
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
try
Database1.Open;
except
ShowMessage("Ошибка");
Application.Terminate;
end;
Query1.Open;
выдается сообщение "Ошибка" потом вроде выполняется Application.Terminate после чего программа не завершается а пытается выполнить Query1.Open;
Song (2003-01-09 12:22:00) [28]Ошибка в 17-ой строке
Delirium^.Tremens (2003-01-09 12:22:00) [29]тащи сюда весь блок :-)