1
我有一个简单的程序(在Delphi 7中)在其主窗体上是一个按钮。 当我点击主窗体上的按钮时,我会打开第二个窗体。 当我关闭第二个窗体时,如何防止运行主窗体OnActivate事件? (除了这个代码:MainForm.OnActivate =无)阻止运行主窗体OnActivate事件
感谢
我有一个简单的程序(在Delphi 7中)在其主窗体上是一个按钮。 当我点击主窗体上的按钮时,我会打开第二个窗体。 当我关闭第二个窗体时,如何防止运行主窗体OnActivate事件? (除了这个代码:MainForm.OnActivate =无)阻止运行主窗体OnActivate事件
感谢
最简单的可能性
MainForm.OnActivate := NIL;
Form2.ShowModal;
MainForm.OnActivate := MainFormOnActivate;
用别的东西可以打破德尔福未来的兼容性......
一个很好的简写使用GpStuff(BSD License)临时禁用事件:
uses
GpStuff;
with DisableHandler(@@MainForm.OnActivate) do
Form2.ShowModal;
什么是OnActivate事件处理程序,为什么它不应该在Form2关闭时运行,并且它应该在其他场合运行(例如,当用户从应用程序切换并返回到它时)。这些问题的答案极大地决定了您需要的解决方案。 – 2011-01-09 09:39:58
我怀疑错误的OnActivate使用情况,修复它,问题将消失。 – 2011-01-09 13:19:05
确实这听起来有点像MainForm.OnActivate中发生的事情是不恰当的,实际上是真正的问题。 – 2011-01-09 13:29:23