为什么不调用TApplicationEvents.OnIdle?

时间:2010-01-20 17:01:34

标签: delphi event-handling

在我的应用程序中,我有一个带有按钮的主窗体。 单击此按钮,将创建并显示表单(不在dpr中自动创建);在这个表单上,我放置了一个TApplicationEvents组件,我定义了它的OnIdle事件处理程序。 这个事件处理程序不会被调用!可能这取决于因为我从而得出第二种形式 TForm但来自其他类,TChartBasicForm(通过VFI)? 非常感谢您的回复。 马西莫。

2 个答案:

答案 0 :(得分:1)

挂钩应用程序的空闲事件可能会导致很多调试问题和其他维护问题,特别是在主窗体以外的表单上。我意识到这可能无法回答你的具体问题(鉴于这种模糊性很难做到这一点),但是你确定你无法完成你试图用TTimer或{{1而不是?

答案 1 :(得分:1)

感谢所有人的兴趣。 “它不起作用”意味着它根本没有被调用。 相反,OnShowHint事件有效!

哎呀! 也许我已经理解了不良行为! 在主窗体中,我定义了一个类似这样的过程:

procedure IdleHandler(Sender: TObject; var Done: Boolean);

并在FormCreate中:

Application.OnIdle := IdleHandler;

这可能会抑制TApplicationEvents.OnIdle,即使 在IdleHandler中,在程序结束时,我把:

Application.OnIdle := nil;

因为代码仅在开始时尝试连接是有用的 申请书。

请原谅:我的脸红了......