您的位置:首页 > 移动开发

ttimer 控件和 application.processmessages 导致的消息列表溢出。

2010-12-30 11:06 288 查看
procedure TForm1.tmr1Timer(Sender: TObject);
begin
windows.Beep(100, 100);
windows.Beep(100, 100);
while true do
begin
Application.ProcessMessages;
end;
end;

这种代码会导致timer会被反复触发。

procedure TForm1.tmr1Timer(Sender: TObject);
begin

tmr1.enabled := false

try
windows.Beep(100, 100);
windows.Beep(100, 100);
while true do
begin
Application.ProcessMessages;
end;

finally

tmr1.enabled := false;

end;
end;

则不会导致wm_timer时间消息的频繁发生。

下面的代码,也不会反复触发。因为系统太忙了。这种方式不会导致消息列表溢出。

procedure TForm1.tmr1Timer(Sender: TObject);
var
i: Integer;
begin
windows.Beep(100, 100);
windows.Beep(100, 100);
i := 0;
while true do
begin
Sleep(100);
Inc(i);
btn1.Caption := IntToStr(i);
end;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: