N nihao Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-27 #1 我用了TTIMER,并在按钮的代码中使其ENABLED:=true,但ONTIMER事件 总在执行完按钮代码后运行,是不是跟我在按钮事件中用了循环语句有关?
张 张剑波 Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-27 #2 其它方法: procedure TForm1.Button2Click(Sender: TObject); begin starttime:=now; sleep(2000); endtime:=now; label1.Caption :=datetimetostr(endtime-starttime); end; 显示的有点不对,小时、分、秒正确,竟然有日期。
其它方法: procedure TForm1.Button2Click(Sender: TObject); begin starttime:=now; sleep(2000); endtime:=now; label1.Caption :=datetimetostr(endtime-starttime); end; 显示的有点不对,小时、分、秒正确,竟然有日期。
X xiaoywh Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-27 #3 用线程完成你想要的功能吧,TTIMER的原理就是那样执行的
H hclee Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-27 #4 ONTIMER只有在你的OnClick代码执行完后才会执行到,若你的OnClick中用到了循环,则 最好在循环时运行Application.ProcessMessages,否则ONTIMER是不会执行到的,其它事 件也一样不会执到。
ONTIMER只有在你的OnClick代码执行完后才会执行到,若你的OnClick中用到了循环,则 最好在循环时运行Application.ProcessMessages,否则ONTIMER是不会执行到的,其它事 件也一样不会执到。
F Fyx Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-27 #5 用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;
用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;