下面 有两个小的问题 谢谢 这是一个书上的例子屡试不爽
unit excetion;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,appevnts;这个appevnts是关于什么的???type
ENotSoBadError=class(Exception);
EBadError =class(Exception);
ERealBadError =class(Exception);
TForm1 = class(TForm)
btnNotSoBad: TButton;
btnBad: TButton;
btnRealBad: TButton;
appevnMain:TApplicationEvents;//这一句会报错
procedure btnNotSoBadClick(Sender: TObject);
procedure btnBadClick(Sender: TObject);
procedure btnRealBadClick(Sender: TObject);
procedure appevnMainException(sender:tobject;E:exception);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btnNotSoBadClick(Sender: TObject);
begin
raise ENotSoBadError.Create('this isnt so bad');
end;procedure TForm1.btnBadClick(Sender: TObject);
begin
raise EBadError.Create('this is bad');
end;procedure TForm1.btnRealBadClick(Sender: TObject);
begin
raise ERealBadError.Create('this is real bad');
end;
为什么 虽然产生异常但好象没有执行 我这个 定义的函数啊
procedure TForm1.appevnMainException(sender: tobject; E: exception);
var
rstl:boolean;
begin
if E is EBadError then
begin
rstl:=messagedlg(format('%s %s %s %s %s %s',['an',E.classname,
'exception has occured.',E.message,'quit app?']),
mterror,[mbyes,mbno],0)=mryes;
if rstl then
application.Terminate;
end
else if E is ERealBadError then
begin
rstl:=messagedlg(format('%s %s %s %s %s %s',['an',E.classname,
'exception has occured.',E.message,'quit app']),
mterror,[mbyes,mbno],0)=mryes;
application.Terminate;
end
else
application.ShowException(E);
end;end.
unit excetion;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,appevnts;这个appevnts是关于什么的???type
ENotSoBadError=class(Exception);
EBadError =class(Exception);
ERealBadError =class(Exception);
TForm1 = class(TForm)
btnNotSoBad: TButton;
btnBad: TButton;
btnRealBad: TButton;
appevnMain:TApplicationEvents;//这一句会报错
procedure btnNotSoBadClick(Sender: TObject);
procedure btnBadClick(Sender: TObject);
procedure btnRealBadClick(Sender: TObject);
procedure appevnMainException(sender:tobject;E:exception);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btnNotSoBadClick(Sender: TObject);
begin
raise ENotSoBadError.Create('this isnt so bad');
end;procedure TForm1.btnBadClick(Sender: TObject);
begin
raise EBadError.Create('this is bad');
end;procedure TForm1.btnRealBadClick(Sender: TObject);
begin
raise ERealBadError.Create('this is real bad');
end;
为什么 虽然产生异常但好象没有执行 我这个 定义的函数啊
procedure TForm1.appevnMainException(sender: tobject; E: exception);
var
rstl:boolean;
begin
if E is EBadError then
begin
rstl:=messagedlg(format('%s %s %s %s %s %s',['an',E.classname,
'exception has occured.',E.message,'quit app?']),
mterror,[mbyes,mbno],0)=mryes;
if rstl then
application.Terminate;
end
else if E is ERealBadError then
begin
rstl:=messagedlg(format('%s %s %s %s %s %s',['an',E.classname,
'exception has occured.',E.message,'quit app']),
mterror,[mbyes,mbno],0)=mryes;
application.Terminate;
end
else
application.ShowException(E);
end;end.
TApplicationEvents为一控在additional页中,所以如果appevnMain:TApplicationEvents表错应该是手工写的代码吧!
删掉此代码窗体上加一TApplicationEvents控件name设为appevnMain吧!!!