Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
8-1081852685
ЁПРСТ
2004-04-13 14:38
2004.06.27
Как поменять цвет BitBtn?


4-1082477291
Eugene Mosyagin
2004-04-20 20:08
2004.06.27
Работа с LPT под WInNT


14-1086953070
WondeRu
2004-06-11 15:24
2004.06.27
Иконки для "Выделить все", "Снять выделение",


1-1086951900
BillyJeans
2004-06-11 15:05
2004.06.27
TreeView


1-1087202922
Vilux
2004-06-14 12:48
2004.06.27
Рисунок в RichEdit




   Наверх