关于 定时器 问题???(100分)

  • 主题发起人 主题发起人 thinkjiang
  • 开始时间 开始时间
T

thinkjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
当用户输入一个字符,间隔5秒钟后还未有新的字符输入则执行程序,
如果在5秒钟内还有输入新字符则计时器清零从头开始计时。
这除了用TTimer 外,还有其他的定时方法吗?
各位老大指点指点小弟!!
100分不成敬意~~
 
延时函数
procedure SysDelay(aMs:integer);
//aMs是一个以毫秒为单位的变量

begin


var
TickCount : LongInt;

begin
TickCount:=GetTickCount;
//这是一个取当前时间戳的函数
while GetTickCount - TickCount < aMsdo
Application.ProcessMessages;
//将当前时间戳与起始时间戳相减比较,如果未超出延时时间则告诉系统继续等待并处理其他线程的消息
end;
 
用Timer不好嗎??
var
Form1: TForm1;
StartTime:DWORD;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if GetTickCount-StartTime>=5000 then
begin
Timer1.Enabled:=False;
memo1.Lines.Add('Wait for too long');
end;
end;

procedure TForm1.Memo1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
Timer1.Enabled:=True;
StartTime:=GetTickCount;
end;
 
楼上的可以所需实现功能,而且比较实用
 
Thank You!!!
 
多人接受答案了。
 
后退
顶部