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