如何用Timer组件来显示程序执行所花的时间?? 我想知道程序执行完所花的时间,可是不知怎么写代码,请都各位高手一下,打扰了.小弟初学delphi不久,希望能给个意见.谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var a,b : Cardinal;begin a := gettickcount; {你的程序} b := gettickcount - a; //执行时间end; 哦!gettickcount是函数还是变量呢? 为什么要用timer控件呢?procedure TForm1.Button1Click(Sender: TObject);var t1,t2:tdatetime; i:Extended;begin t1:=now; memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1)); //你的代码; sleep(2000); t2:=now; memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2)); i:=t2-t1; memo1.lines.add('程序共执行了'+inttostr(round((i)*60*60*24))+'秒');end; 上边 i是我调试用的,去掉就可以procedure TForm1.Button1Click(Sender: TObject);var t1,t2:tdatetime;begin t1:=now; memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1)); //你的代码; sleep(2000); t2:=now; memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2)); memo1.lines.add('程序共执行了'+inttostr(round((t2-t1)*60*60*24))+'秒');end; gettickcount获得一个系统运行的时间值,单位是毫秒,比Timer要精确些 支持 paranoia190和 YAMABACK(不要把我当Michael,我只是会投篮) 的看法 formCreate的时候记录一个now的值什么时候想知道运行多长时间了,就用当时的now和记录作比较就可以了//////////////////////优点是不用Timer,可以省下一笔不小的开销受一个人的启发,记得原来见过这么做的...推荐一下 应该使用操作系统的API:GetTickCount来计算时间差值。 GetTickCount返回系统启动到现在的毫秒值,在开始时计算一下,在操作结束时再计算一下,作个差值就可以了。 欢迎大家加入DELPHI程序员群1805366,一起进步! Delphi 一个获取网络服务器时间错误的问题,望高人帮帮 怎么让播放器在打开时就显示上一次所打开的歌曲 ListView_SetIconSpacing设置间距,自动刷新后位置错误的问题 关于数据库 我在delphi盒子上下载了Report Machine 3.0 (报表控件包) 通過定時器滾動顯示字幕 怎么把下列类型转换成string类型? 一个笨苯的问题 求救,Image控件中的图像怎么才能复制到剪贴板中 FastReport、ReportBuilder和quickReport的选择 关于悬浮窗口 在那里看自己的专家分啊?
a,b : Cardinal;
begin
a := gettickcount;
{你的程序}
b := gettickcount - a; //执行时间
end;
var t1,t2:tdatetime; i:Extended;
begin
t1:=now;
memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1));
//你的代码;
sleep(2000);
t2:=now;
memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2));
i:=t2-t1;
memo1.lines.add('程序共执行了'+inttostr(round((i)*60*60*24))+'秒');
end;
procedure TForm1.Button1Click(Sender: TObject);
var t1,t2:tdatetime;
begin
t1:=now;
memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1));
//你的代码;
sleep(2000);
t2:=now;
memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2));
memo1.lines.add('程序共执行了'+inttostr(round((t2-t1)*60*60*24))+'秒');
end;
什么时候想知道运行多长时间了,就用当时的now和记录作比较就可以了
//////////////////////
优点是不用Timer,可以省下一笔不小的开销
受一个人的启发,记得原来见过这么做的...推荐一下
在开始时计算一下,
在操作结束时再计算一下,
作个差值就可以了。