★★如何实现按一下按钮可以终止一个正在运行中的循环?请举个例子,谢谢!
比如说,一个循环想要得出结果需要很长时间,中间我想终止它,如何做呢?请举个例子,谢谢!
这样的循环与死循环一样会导致死机吗?

解决方案 »

  1.   

    用多线程来解决,不然的话,在循环开始以后,你无法按下按钮~在按钮事件中使线程的Terminated属性变为False;
    在线程Execute中写你的循环,并判断Terminated的属性,为False就Break出来
      

  2.   

    type
      TClassName = class(TParentClass)
        procedure Button1Click(aSender: TObject);
      private
        fContinue: Boolean;
        procedure LoopProc;
      end;    procedure TClassName.Button1Click(aSender: TObject);
    begin
      fContinue := False;
    end;procedure TClassName.LoopProc;
    begin
      fContinue := True;
      while fContinue do
      begin
        //do process
        ...    Application.HandleMessage;
      end;
    end;