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

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

Немедленно завершить работу приложения


Страницы:   1 2

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]

тащи сюда весь блок :-)


Страницы:   1 2

Наверх

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