我想通过一个按键来控制暂停和继续
比如在for 循环里面,我要怎么样才能达到我的目的

解决方案 »

  1.   

    设立一变量,每次循环时判断变量再用sleep(时间)解决行么?
      

  2.   

    不南,自己想办法把
    提示你:设置全局变量,
            循环中应该能接受外部消息。就可以解决了。
            另外可能要设置的全局变量可能得2个。一个存放按钮按下的瞬间for循环中的计数,另外加一个boolean变量。具体自己考虑吧
      

  3.   

    如下:
    IsPush是一个在Private中定义的布尔变量for i:=1 to 100 do
    begin
    ..............
    while IsPush do
       sleep(1);
    ..............
    end;在暂停按钮中写下:
    IsPush:=true;继续按钮:
    IsPush:=false;
      

  4.   

    var
      Paused: Boolean;//循环体开始
      ...
      //暂停控制
      while Paused do
        Application.ProcessMessages
      ...
    //循环体结束
      

  5.   

    不要在主线进程中使用Sleep,这会使窗体停止响应,死循环也会停止响应
    在循环中调用Application.ProcessMessages可以使可视控件处理消息
      

  6.   

    这样你就可以在别的事件中写改变全局变量Paused的语句了,比如:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Paused := not Paused;
    end;不好意思,写了三个帖子,楼主连着看吧
      

  7.   

    var
      bPaused: Boolean;  //global varprocedure proc();
    var
      i: Integer;
    begin
      ..
      ..
      for i:= 0 to 500 do
      begin
        ..
        if bPaused then
          break
        else
          continue;
        ..
      end;
      ..
      ..
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      bPaused := not bPaused;
    end;