怎样在按下一个按钮时,既执行按钮中的代码,又开始计时,从而在按钮结束时得到执行按钮代码所用的时间?(100分)

  • 主题发起人 主题发起人 nihao
  • 开始时间 开始时间
N

nihao

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了TTIMER,并在按钮的代码中使其ENABLED:=true,但ONTIMER事件
总在执行完按钮代码后运行,是不是跟我在按钮事件中用了循环语句有关?
 
其它方法:
procedure TForm1.Button2Click(Sender: TObject);
begin
starttime:=now;
sleep(2000);
endtime:=now;
label1.Caption :=datetimetostr(endtime-starttime);
end;
显示的有点不对,小时、分、秒正确,竟然有日期。
 
用线程完成你想要的功能吧,TTIMER的原理就是那样执行的
 
ONTIMER只有在你的OnClick代码执行完后才会执行到,若你的OnClick中用到了循环,则
最好在循环时运行Application.ProcessMessages,否则ONTIMER是不会执行到的,其它事
件也一样不会执到。
 
用GetTickCount函数:
procedure TForm1.Button1Click(Sender: TObject);
var
; i, j, k: integer;
; T1, T2: DWord;
begin
; k := 0;
; T1 := GetTickCount;
; for i := 0 to StrToInt(Edit1.Text) do
; ; for j := 0 to StrToInt(Edit2.Text) do;
; ; ; ;k := i + j;
; T2 := GetTickCount - T1;
; Caption := IntToStr(T2) + ' ; '+IntToStr(k);
end;
 
用ryx的方案比较精确
 
多人接受答案了。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部