2013-11-15 51 views
0

表單隱藏或關閉時有什麼區別? 隱藏我的主窗體時,我將事件記錄到數據庫(作爲應用程序啓動)。所以我想知道什麼時候做日誌記錄:在隱藏事件或停用?當我停用表單時,我在做什麼?Delphi - 表單關閉

+0

取消激活意味着表單不再位於前面。這是隱藏活動窗體的結果(VCL試圖找到並激活另一個窗體)。如果它隱藏時沒有激活,f.i.,它不會停用。如果要指出應用程序何時啓動,請在應用程序啓動時記錄您的事件。 –

+0

我只是想知道它是否是相同的東西...隱藏我的窗體導致它停用,所以我可以在那裏做日誌記錄。還是沒有?只是在停用事件中測試它,它就像隱藏一樣。 – user763539

+0

當然。這不是一回事,但它們會非常接近。 –

回答

2

OnDeactivate每當你的窗體(或「窗口」)失去焦點時執行(例如當用戶選擇另一個窗口時)。 OnHide執行,當你調用Visible := FalseMyForm.Hide;

有內置TForm的用於OnMinimizeOnRestore沒有的OnEvent方法,但快速谷歌搜索將產生如何自己實現這些功能很好的例子。

+0

當表單隱藏時,它會失去焦點。是嗎?所以,如果我理解正確,在我的例子中,它基本上是一樣的,因爲我隱藏了主窗體並顯示了另一個主窗體。 – user763539

+0

隱藏表單不一定會導致它失去焦點,但是如果下一個表單在顯示時需要關注,那肯定會導致第一個表單失去焦點。 – LaKraven

+0

是的,我正在做Form3.Show; MainForm.Hide;所以我可以使用兩種情況(關閉時)或(onhide)基本上是一樣的東西,因爲mainform無論如何都會失去焦點? – user763539