Exception sur le FormCreate d'une fiche
Bonjour,
Lorsqu'une exception est soulevée dans l'événement FormCreate d'un objet de type TForm, l'erreur est affichée à l'écran mais ne semble pas interrompre le déroulement du code. Voici un exemple.
J'ai une fiche bidon dans laquelle je soulève une exception dans le FormCreate:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
begin
raise Exception.Create('Voici une erreur');
Showmessage('Ce message n''est jamais affiché');
end;
end. |
Dans une autre fiche, sur le clic d'un bouton, je créé une instance de TForm3 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AppEvnts, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Ttesss = class
constructor Create;
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
F: TForm3;
begin
F := TForm3.Create(self);
showmessage('Ce message est affiché'); //Pourquoi est-ce que ça exécute ce code??
end;
end. |
Lorsque je clique sur Button1, l'erreur est affichée et quand je fais OK, le showmessage est exécuté.
Ma question est fort simple : pourquoi est-ce que le code de Button1Click continue d'être exécuté après qu'une exception a été soulevée ?
Merci!