怎样在timer中暂停几秒 ( 积分: 200 )

  • 主题发起人 主题发起人 yzj832
  • 开始时间 开始时间
Y

yzj832

Unregistered / Unconfirmed
GUEST, unregistred user!
程序非常简单

procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=datetimetostr(now);
暂停几秒
edit2.Text:=datetimetostr(now);
timer1.Enabled :=false;
end;

PS:本人为标准菜鸟,请说的详细一点
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=datetimetostr(now);
sleep(4000); //停留4秒
edit2.Text:=datetimetostr(now);
timer1.Enabled :=false;
end;
 
啊,这么简单的问题,来迟一步,唉,可惜啊
既然来了,就写点,
写个常用的计时功能吧
procedure TForm1.Timer1Timer(Sender: TObject);
var
iTime: Cardinal;
begin
iTime:= GetTickCount;
edit1.Text:= '开始计时';
sleep(3000);
iTime:= (GetTickCount- iTime) div 1000;
edit2.Text:= '耗时:'+IntToStr(iTime)+ '秒';
timer1.Enabled :=false;
end;
 
用sleep不能出现我想要的效果.我想要edit1里面出现时间后过几秒再在edit2里出现时间,而用了sleep会过几秒后同时在edit1和edit2里出现时间.
 
設置在適當的地方應該可以滿足要求的
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
iTime: Cardinal;
begin

timer1.Enabled :=false;// 必须加

iTime:= GetTickCount+n*1000; // n:秒
While (iTime>GetTickCount) do
application.processmessage;

timer1.Enabled :=false;
end;
 
如果是3秒的話,把interval設為3000
timer1.enabled:=False;
if Edit1.Text='' then
begin
Edit1.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',now);
Edit2.Text:='';
end
else
begin
Edit2.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',now);
Edit1.Text:='';
end;
timer1.Enabled:=true;
 
多加一个Timer,Interval设为3000,Enabled为False;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=datetimetostr(now);
Timer1.Enabled := False;
Timer2.Enabled := True;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
edit2.Text:=datetimetostr(now);
Timer2.Enabled := False;
end;
 
application.processmessage;
少了个s
 

Similar threads

I
回复
0
查看
680
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
783
import
I
后退
顶部