Главная страница
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.015 c
1-55103
Andrew22
2002-06-06 09:03
2002.06.17
Курсор


3-55003
_toltec
2002-04-30 01:48
2002.06.17
Сервис и MySql


3-54994
KS
2002-05-23 11:17
2002.06.17
Проблемка с IBQuery.


3-54984
RiNat
2002-05-23 04:48
2002.06.17
THalcyonDataSet для чайника


8-55223
sscorp2000
2002-02-04 13:32
2002.06.17
Сохранить Bitmap c другим разрешением?