比如按钮的点击事件里有个过程aa过程里面有个过程b,当运行到b里面的代码时,当满足条件时,直接跳出,不执行a剩下的代码、和按钮事件中a后面的代码。但在b中使用Abort是,只能跳出a,按钮的事件a后面的代码还是会执行。所以如何直接跳出,连按钮事件后面的代码也不执行?Button1Click()
begin
 ...
 a;
 //位置A 
 ... 
end;procedure a;
begin
  ...
  b;
  ..
end;
procedure b;
begin
  ...
  Abort; //希望在这里直接跳出所有过程,回到界面,可是没有方法实现??? 只能跳到位置A
  ...end;请教解决方法!!!

解决方案 »

  1.   

    Abort就是一个没有信息的异常,如果A中不对其处理,应该可以跳出所有过程,我测试了一下下面的代码,所有的end都没有显示出来,证明确实跳出了所有过程:procedure B;
    begin
      ShowMessage('B-begin');
      Abort;
      ShowMessage('B-end');
    end;procedure A;
    begin
      ShowMessage('A-begin');
      B;
      ShowMessage('A-end');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('Click-begin');
      A;
      ShowMessage('Click-end');
    end;