Delphi中窗體的事件


Form窗體可以響應各種各樣的時間,在Object Inspector的Events頁面中羅列了一大堆,如下圖:

0086

下面將要列出一些常用的事件。

1、OnActivate

當窗體被初始激活時,就會發生OnActivate事件,當初始創建窗體或者用戶從一個窗體切換到另一個窗體時,就可能激活窗體,Application對象也有一個OnActivate事件,當用戶從一個應用程序切換到另一個應用程序時,就會產生此事件。

2、OnClose和OnCloseQuery

當關閉一個應用程序時,就要發出OnClose事件,OnClose事件調用OnCloseQuery事件來看一看是否真的要關閉窗體,如果OnCloseQuery事件返回False,窗體就不會關閉。

3、OnCreate

當窗體初始化創建時,就會發生OnCreate事件,對特定窗體的任何實例,OnCreate事件只發生一次,OnCreate處理程序只是用來執行任何啟動任務,這些啟動任務對於窗體來說是需要的。

4、OnDestroy

OnDestroy事件是OnCreate的反事件,用來清除窗體動態分配的所有內存,或者做其他一些清理事務。

5、OnDragDrop

當一個對象被拖放到窗體上時,就會發生OnDragDrop事件,如果窗體支持拖放,那么就會對這個事件有所響應。

6、OnMouseDown,OnMouseMove和OnMouseUp

就是窗體上響應鼠標點擊和鼠標運行。

7、OnPaint

每當窗體需要重畫時,就會發生OnPaint事件,有很多原因會導致這個事件發生。響應這個事件,可以作為應用程序所需要的任何畫圖,並隨時可以顯示出來。在大部分情況下,專用組件會自己畫圖,但有些情況下,我們需要自己動手畫圖。

8、OnResize

每當重新縮放窗體時,就會發生OnResize事件,響應這個事件可以調整窗體上的組件或者對窗體重畫。

9、OnShow

在窗體變成可見之前,就會發生OnShow事件。在窗體顯示之前,可以用這個事件完成圖昂提需要處理的任何事情。

Note

當一個窗體創建時,會產生很多事件,同樣的,當一個窗體消失時,也會產生很多事件。但這些事件是按什么次序發生的呢?當窗體建立時,發生事件的次序入下:

image

當一個窗體消失時,發生事件的次序如下:

image

在大部分情況下,直接保持這個次序不是很重要,但在有些情況下,它就變得至關重要。了解事件處理程序、構造程序和析構程序的調用次序是有好處的,起碼當真正需要知道這個次序時,可以避免不必要的嘗試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM