2011-01-09 50 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;