Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Снова про прервание 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-55094
Kordel
2002-06-05 21:40
2002.06.17
FreeInstance


1-55057
Milg
2002-06-05 14:53
2002.06.17
Как узнать высоту Task Bar’а?


6-55258
OGR
2002-02-06 13:34
2002.06.17
Как отключить скроль в TWebBrowser?


1-55152
ех
2002-06-02 22:39
2002.06.17
Иконки файлов


3-54979
AJ Blacksmith
2002-05-17 10:26
2002.06.17
Как программно создать алиас???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский