淺談Delphi中窗體的事件
Form窗體可以響應各種各樣的時間,在Object Inspector的Events頁面中羅列了一大堆,如下圖:
下面將要列出一些常用的事件。
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
當一個窗體創建時,會產生很多事件,同樣的,當一個窗體消失時,也會產生很多事件。但這些事件是按什么次序發生的呢?當窗體建立時,發生事件的次序入下:
當一個窗體消失時,發生事件的次序如下:
在大部分情況下,直接保持這個次序不是很重要,但在有些情況下,它就變得至關重要。了解事件處理程序、構造程序和析構程序的調用次序是有好處的,起碼當真正需要知道這個次序時,可以避免不必要的嘗試。
原文鏈接:http://www.cnblogs.com/pchmonster/archive/2012/01/03/2311361.html
【編輯推薦】