2011-01-09 85 views
1

我有一个简单的程序(在Delphi 7中)在其主窗体上是一个按钮。 当我点击主窗体上的按钮时,我会打开第二个窗体。 当我关闭第二个窗体时,如何防止运行主窗体OnActivate事件? (除了这个代码:MainForm.OnActivate =无)阻止运行主窗体OnActivate事件

感谢

+2

什么是OnActivate事件处理程序,为什么它不应该在Form2关闭时运行,并且它应该在其他场合运行(例如,当用户从应用程序切换并返回到它时)。这些问题的答案极大地决定了您需要的解决方案。 – 2011-01-09 09:39:58

+3

我怀疑错误的OnActivate使用情况,修复它,问题将消失。 – 2011-01-09 13:19:05

+1

确实这听起来有点像MainForm.OnActivate中发生的事情是不恰当的,实际上是真正的问题。 – 2011-01-09 13:29:23

回答

2

最简单的可能性

MainForm.OnActivate := NIL; 
Form2.ShowModal; 
MainForm.OnActivate := MainFormOnActivate; 

用别的东西可以打破德尔福未来的兼容性......

5

一个很好的简写使用GpStuffBSD License)临时禁用事件:

uses 
    GpStuff; 

with DisableHandler(@@MainForm.OnActivate) do 
    Form2.ShowModal;