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

Вниз

Снова про прервание Application :)   Найти похожие ветки 

 
kronprince ©   (2002-06-04 17:31) [0]

Не могу понять откуда Exception ???

Application.Initialize;
// ну тут все понятно
formAbout:=TformAbout.Create(nil);
formAbout.Show();
formAbout.Update();
Application.CreateForm(TData, Data);
// boolCreateError - глобальная, устанавливается при создании Data
if not boolCreateError
then begin
Application.CreateForm(TFormMain, FormMain);
// .... и еще куча всего

formAbout.Free();
Application.Run;
end{if boolCreateError}
else begin
formAbout.Free();
Data.Free();
end;{if else}


и как коректно убить результаты работы Application.Initialize; ???
вообще как корректно освободить всю память если не хочешь запускать Application.Run; ???


 
Игорь Шевченко ©   (2002-06-04 17:37) [1]

Убить:

Application.ShowMainForm := false;
Application.Terminate();

Совсем грубо - Halt


 
Shaman_Naydak ©   (2002-06-04 17:43) [2]

1. Application.Initialize не делает ничего такого, что нужно было бы убивать! Единственное, что он делает, так это вызывает цепочку InitProc.. модули сами в finalization сделают то, что нужно.
2. Откуда Exception - ясный пень при создании либо формы Data, либо формы FormMain.. Кстати, вы в курсе, что главной формой у вас будет считаться именно форма Data..
Учить язык надо, батенька.
Работать с ошибками надо путем установки обработчиков исключений, а не анализом каких-то булевских переменных..
Приблизительно так:
Application.Initialize;
formAbout:=TformAbout.Create(nil);
try
formAbout.Show;
formAbout.Update;
try
Application.CreateForm(TData, Data);
Application.CreateForm(TFormMain, FormMain);
formAbout.Release;
formAbout:=nil;
Application.Run;
except
on E: Exception do ShowMessage(E.Message);
end;
finally
formAbout.Free;
end;

Пишу не проверяя, так что звиняйте, если что


formAbout.Free();

Data.Free();
end;{if else}


 
Shaman_Naydak ©   (2002-06-04 17:44) [3]

Блин.. последние строчки - после
> Пишу не проверяя, так что звиняйте, если что
НЕ НУЖНЫ - наследие Cut & Paste, блин



 
Shaman_Naydak ©   (2002-06-04 17:47) [4]

> Игорь Шевченко ©
Извините, вы не правы
Terminate не отработает, так как он не хочет запускать Application.Run, а значит из очереди сообщений Quit никто не достанет :(

A Halt действительно очень грубо!!!


 
Игорь Шевченко ©   (2002-06-04 17:50) [5]

Shaman_Naydak © (04.06.02 17:47)

Если автору надо в dpr что-то делать по условиям, то не прав.
Но этот способ сам по себе корявый - в dpr по условию либо выполнять run, либо нет.



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-55155
Sniffer
2002-06-04 14:25
2002.06.17
Я забыл как называется функция!


14-55280
Дмитрий_Б
2002-05-14 17:21
2002.06.17
Удаленные записи ??


3-54982
Ш-К
2002-05-22 09:04
2002.06.17
SQL in UDF


6-55241
novomod
2002-04-07 15:17
2002.06.17
Help.TClientSocket and TServerSocket.


3-54981
Proton
2002-05-22 07:56
2002.06.17
Выборка первых 10 записей