如果运行时间比较长,在运行过程中想点击一个按钮达到终止运行的效果。又不想关闭form。

解决方案 »

  1.   

    varExitFlag: Boolean = false;procedure TForm1.Button1Click(Sender: TObject);constBusy: Boolean=false;beginif Busy then Exit; // 若已进入本过程则退出Busy := true; //设立已进入本过程标志,这一句很重要while true do beginApplication.ProcessMessages; // 让其他控件能获取消息if ExitFlag then Break; // 若标志为真退出死循环end;Busy := false; // 清除已进入本过程标志end;procedure TForm1.Button2Click(Sender: TObject);beginExitFlag := true;end;
      

  2.   

    bear_cn(Borland) :
    我在其它地方看到这段代码了,好像意思就是从button1中的死循环中跳出。因为是循环,所以可以每次检测exitflag的值。
    而我的代码只是慢而已,并非循环,所以我觉得可能不能用这个吧?大家没有其它办法了吗?