opc*_*0de 1 delphi event-handling
我正在尝试处理一些事件,当我的应用程序空闲时,所以我创建了这个代码
procedure TForm1.ApplicationEventIdle(Sender: TObject; var Done: Boolean);
begin
Done := false;
ShowMessage('Hello');
Done := true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnIdle := ApplicationEventIdle;
end;
Run Code Online (Sandbox Code Playgroud)
问题是消息框无限次出现我怎么才能只显示一次?
Dav*_*nan 11
出现此行为正是因为您显示了对话框.要关闭对话框,您必须单击"确定"按钮.这会在队列中放置输入消息.处理完毕后,OnIdle事件将触发.然后再次显示消息框.等等等等.
您需要确保在OnIdle处理程序中不执行任何需要用户输入的操作.在您的情况下,尝试输出到日志而不是显示对话框,例如OutputDebugString.
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |