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

Вниз

Исключения в FormActivate, Create и т. д.   Найти похожие ветки 

 
Aleksej   (2004-06-15 13:51) [0]

Как прервать выполнение программы при выполнении некоторого условия при создании\активации формы?
Делаю так:
procedure TForm1.FormCreate(Sender: TObject);
var
  MyIni:TIniFile;
  i:integer;
begin
  MyIni:=TIniFile.Create("test.ini");
  i:=MyIni.ReadInteger("S1","Param1",100);
  MyIni.Free;
  if i=100 then raise Exception.Create("Ошибка при создании !");
end;
Пытаюсь перехватить исключение следующим образом:
begin
 try
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
 except on Exception do
    MessageDlg("Ошибка",mtInformation,mbYesNoCancel,0);
 end;
end.
НО, нужного мне результата не вижу: появляется форма, и программа прекрасно работает.
Что я неправильно делаю?


 
Sandman25 ©   (2004-06-15 13:53) [1]

if i=100 then
begin
 ShowMessage("Ошибка при создании !");
 Release;
end;


 
Aleksej   (2004-06-15 13:58) [2]

Попробовал. Не работает.
После Release идет на Application.Run;
и висит.... :-(


 
Sandman25 ©   (2004-06-15 14:02) [3]

Виноват, не проверил.
В крайнем случае можно вызвать Free c exit. Только что попробовал - вроде работает.


 
Гаврила ©   (2004-06-15 14:07) [4]

Лучше выполнять эти действия в конструкторе формы, а не на OnCreate
Тогда в случае возникновения исключения форма не будет создана (автоматически будет вызван деструктор)


 
GuAV ©   (2004-06-15 17:15) [5]


> В крайнем случае можно вызвать Free c exit

Да хоть с аборотм, все finally пройдутся.
Только Halt(255) :->


 
Sandman25 ©   (2004-06-15 17:27) [6]

[5] GuAV ©   (15.06.04 17:15)

Я имел ввиду, чтобы не получилось нечто типа

if ... then
 Free;
Label1.Caption := .. // Access Violation



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

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.031 c
1-1086886653
Ivolg
2004-06-10 20:57
2004.06.27
Резка


14-1086896329
YurikGL
2004-06-10 23:38
2004.06.27
Оштрафовали создателя сайта за гиперссылку на 25 $


14-1086891993
Knight
2004-06-10 22:26
2004.06.27
Гы... :)


14-1086872521
Киркоров :)
2004-06-10 17:02
2004.06.27
Просто хорошая песня Киркорова :))))))))


3-1086286568
hardclubber
2004-06-03 22:16
2004.06.27
Автоинкримент в IB





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский