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

Вниз

Исключения в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
9-1078569930
BaTxeD
2004-03-06 13:45
2004.06.27
HELPPPP


3-1086019974
Bohdan
2004-05-31 20:12
2004.06.27
Как настроить программно алиас на базу DBF??


9-1078412723
AlexXn
2004-03-04 18:05
2004.06.27
Перемещение Image


11-1074873849
=Sniper=
2004-01-23 19:04
2004.06.27
Как сделать простейшую подсветку HTML синтаксиса...?


1-1086870408
Андрей
2004-06-10 16:26
2004.06.27
Управление другой программой