下面 有两个小的问题 谢谢 这是一个书上的例子屡试不爽
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.

解决方案 »

  1.   

    翻到Additonal控件页上看一下,带火炬那个ApplicationEvents ,把它拖下来,uses的单元里就加入了appevnts。ApplicationEvents是干什么用的,看一下帮助文件就知道了。
      

  2.   

    appevnMain:TApplicationEvents;//这一句会报错?
    TApplicationEvents为一控在additional页中,所以如果appevnMain:TApplicationEvents表错应该是手工写的代码吧!
    删掉此代码窗体上加一TApplicationEvents控件name设为appevnMain吧!!!