如何让程序在运行过程中显示计时? 在窗口中点击运行按钮,程序开始处理事务,旁边label上显示计时时间。处理完毕事务后,lable时间计时停止。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Raize控件,有个TRzClockStatus,就是起这个作用的,active 为false和true,就显示/停止时间。不过要在运行期间,都显示时间较困难,实际是运行期间,时间不变,等运行结束后,显示最新的时间。 time控件,不行的话放到线程里实时刷新 创建线程,在线程中使用time控件。以前做下载器的时候就是这样的! 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; 在一个线种中,使用Time控件即可。 Ttimer控件,不行的话放到线程里实时刷新 //三个变量,一个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;这样的话,可能处理时间会加长,但是程序不会卡死,如果处理时间很长,不加这个语句,程序出现假死现象,则可以改用多线程处理。 大家看一下这个VC的函数怎么轮换成DELPHI的,谢谢。 UIB的安装问题 如何将txt文本插入SQL2000数据库 大伙来来来,试试怎么送分了 請問:delphi5作的模塊如何集成到delphi6作的系統中去呀?急!!!!! 使用NMUDP发送数据包的奇怪问题!(分包发送大于8192字节的数据) 动态链接paradox的数据 ShellTreeView只能显示目录,请问如何让ShellTreeView显示文件啊?谢谢 如何读取ACCESS数据库里头的说明~ delphi与matlab的接口问题 Delphi2009下IdHTTPServer的AResponseInfo编码问题 注册表问题
active 为false和true,就显示/停止时间。不过要在运行期间,都显示时间较困难,实际是运行期间,
时间不变,等运行结束后,显示最新的时间。
以前做下载器的时候就是这样的!
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;
//全局变量
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;这样的话,可能处理时间会加长,但是程序不会卡死,如果处理时间很长,不加这个语句,程序出现假死现象,则可以改用多线程处理。