在窗口中点击运行按钮,程序开始处理事务,旁边label上显示计时时间。处理完毕事务后,lable时间计时停止。

解决方案 »

  1.   

    Raize控件,有个TRzClockStatus,就是起这个作用的,
    active 为false和true,就显示/停止时间。不过要在运行期间,都显示时间较困难,实际是运行期间,
    时间不变,等运行结束后,显示最新的时间。
      

  2.   

    time控件,不行的话放到线程里实时刷新
      

  3.   

    创建线程,在线程中使用time控件。
    以前做下载器的时候就是这样的!
      

  4.   

    const
      INTERVAL_DISP_SYSTIME     = 60 * 1000;procedure TMainForm.OnDispSysTime(Sender: TObject);
    begin
      lblSysTimeDisp.Caption := Copy(DateTimeToStr(Now), 1, Length(DateTimeToStr(Now)) - 3);
    end;procedure TMainForm.DisplayLocalSysTime;
    begin
      lblSysTimeDisp.Caption := Copy(DateTimeToStr(Now), 1, Length(DateTimeToStr(Now)) - 3);
      tmrSysTime.Enabled := False;
      tmrSysTime.OnTimer := OnDispSysTime;
      tmrSysTime.Interval := INTERVAL_DISP_SYSTIME;
      tmrSysTime.Enabled := True; 
    end;
      

  5.   

    在一个线种中,使用Time控件即可。
      

  6.   

    Ttimer控件,不行的话放到线程里实时刷新 
      

  7.   

    //三个变量,一个Timer1,一个Label1,Timer间隔时间设置为200或者500都可以
    //全局变量
    var
      T1,T2,T3:Int64;
    //处理事务的过程
    begin
      T1:=GetTickCount;
      IsStart:=True;
      Timer1.Enabled:=true;
      //处理事务
      T3:=GetTickCount;
      IsStart:=False;
      Timer1.Enabled:=false;
      Showmessage('用所时间:'+ inttostr((T3-T1) div 1000))+'秒');
    end;//Timer1事件
    begin
      T2:=GetTickCount;
      Label1.Caption:='事务处理时间:'+inttostr((T2 - T2) div 1000)+'秒';
    end;你试试能不能实现,如果处理事务代码中有很长时间的循环,就在循环当中加一个Application.ProcessMessage;这样的话,可能处理时间会加长,但是程序不会卡死,如果处理时间很长,不加这个语句,程序出现假死现象,则可以改用多线程处理。