屬性可以有如下幾種類型下面只給出簡單介紹而這些類型的屬性會在組件制作時詳細的運用
簡單類型屬性如上面定義的加一個例子
Property text:string read Ftext write SetText;
枚舉類型屬性
TEnumtype=(EnumEnumEnum);
FEnumtype:TEnumtype;
Property Enumtype:TEnumtype read FEnumtype write FEnumtype;
在對象察看器中看來就是下拉列框選擇值
集合類型屬性
Tset=(setsetset);
Tsets=set of Tset;
Fsets:Tsets;
Property sets:Tsets read Fsets write Fsets;
在對象察看器中看來就是列出幾個選項分別設置真假比如TForm的BorderIcons屬性即是
對象類型屬性一個屬性是一個對象而這個對象必須派生自Tpersistent或者他之下的類才能在對象察看器中可以展開它並設置它裡面的屬性
數組類型屬性數組屬性如果要在對象察看器中看見需要有自己的屬性編輯器(如果不想在對象察看器看當然就不用啦)是比較高級的組件在後來的組件制作再來介紹會更直觀一些這裡只給出它的定義形式
property Selected[Index: Integer]: Boolean read GetSelected write SetSelected;
三事件
事件其實是一種特殊的屬性他是指針類型指向一個事件方法類型當有特定的事件發生時它就會關聯到一段執行代碼
下面以一個例子來講解事件是怎麼發生的
我們先定義一個鼠標點下事件的鼠標事件類型它其實就是方法指針
type TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X
Y: Integer) of object;
又定義一個私有成員鼠標事件類型的即一個方法指針類型
FonMouseDown:TMouseEvent
最後定義一個屬性類要通過這個屬性將外部的事件處理函數和FonMouseDown關聯在一起
onMouseDown:TMouseEvent read FonMouseDown write FonMouseDown;
當有鼠標左鍵點擊的系統會向窗口會發送WM_LBUTTONDOWN;消息
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/24873.html