目的:作一个倒计时控件,如设置time=3s,timeid=0;那么3秒后将timeid=1.
问:如何实现3秒倒计时?
答:1.for i:=0 to 999999 do i:=i;//循环耗时
    2.sleep(3);//.....
怎样才能使系统资源消耗最少?

解决方案 »

  1.   

    他倒计时,你正着写
    var
      Form1: TForm1;
      i:integer;
    implementation
    {$R *.dfm}
    i是一个全局变量初始值为1;
    ====================================
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      showmessage(inttostr(i));
      if i<3 then i:=i+1  else
      begin
      showmessage('计时完成');
      timer1.Enabled:=false
     end;
    end;
      

  2.   

    类似的例程,
    楼主可以自行修改。var
      Form1: TForm1;
     aa:integer;
    implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
    aa:=3;end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    if  aa=1 then
     begin
     showmessage('time stop');
     timer1.enabled:=false;
     end
     else
     aa:=aa-1end;end.
      

  3.   

    你想用FOR语句循环三秒钟??P4和386的“三秒钟”时间是不一样的:):)
      

  4.   


    procedure TForm1.FormCreate(Sender: TObject);
    var time1:Tdatetime    ;
    begin
      time1 :=time;
      while  SecondsBetween(time,time1) <3 do;
      do what you do.........
    end;