引发例外,就可以了。
raise Exception.Create('Hint的颜色是红色的,我不干啦,马上退出所有执行过程,怎么办呀??');

解决方案 »

  1.   

    当然有用谁说没用了呵呵
    procedure subproc;
    begin
      showmessage('begin');
      raise exception.Create('asdfj');
      showmessage('asdf');
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      subproc;
      showmessage('asdf');
    end;
      

  2.   

    哦,是呀
    上面是对的
    只不过屏蔽不了ModalResult=mrOk
    是这样的
    当用户在一个ShowModal的窗体上点击OkBtn,它的modalResult=mrOk
    而在该OkBtn点击事件中调用了一个过程
    虽然中止了执行该子过程及okBtnclick
    但仍没有屏蔽ModalResult=mrOk
    所以if ModalResult=mrOk then
              do Something
    仍继续执行不知有何办法?
      

  3.   

    exit:退出当前函数或者过程
    abort:中止调用
    例如:
    procedure a
    begin
     b;
     c;
    end;
    procedure b
    begin
      ……
      abort;
      ……
    end;
    则调用a时,如果执行到b中的abort,则c也不会执行(返回到调用者的最后)
      

  4.   

    非常谢谢楼上几位
    但现在我的问题关键在于如何不触发ModalResult=mrOk