我想用sleep来控制显示速度,但在下面的代码中,循环过程中,显示内容不刷新,直到最后才在edit1中显示出来10。如果才能正常显示连续显示呢
procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  for i:=1 to 10 do
  begin
    edit1.Text:=inttostr(i);
    sleep(100);
  end;
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=1 to 10 do
      begin
        edit1.Text:=inttostr(i);
        edit1.Repaint;  //这儿加上一条语句。
        sleep(100);
      end;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=1 to 10 do
      begin
        edit1.Text:=inttostr(i);
        Application.ProcessMessages;  // 加一条语句。
        sleep(100);
      end;
    end;