如何將元件屬性設定成類似Font屬性? |
|
skurama
中階會員 ![]() ![]() ![]() 發表:88 回覆:127 積分:73 註冊:2002-07-22 發送簡訊給我 |
目前我知道可以用'Set of 列舉型態'的方式
來讓屬性名稱左邊可以有一個加號,然後按下後會變展開~
但是其內容都是True or False
有沒有辦法讓其內容顯示可以是Int和String等等不同型態的放在一個屬性內 我知道要宣告成類似Font的好像是在published下的屬性設為TFont
那有沒有辦法自訂一個型態,此型態包含多種型態(ex:string,integer)
然後可以利用屬性左邊的加號展開 ex:
在一個Panel上放一個Button
在Object inspector上大部份都是Panel屬性,而有一個要展開的屬性,
此屬性的內容就是所有Button的屬性,
是否能辦到呢!? 請問有辦法嗎~~~~
------
---------------- 初出芧房程設師, 左鍵右鼠寫程式, 日扣夜寫眼框溼, 望能早成系分師。 ---------------- |
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
寫一個Component Property Editor就可以了
例如:
1. property 繼承至TComponentProperty
impliment 以下override之method
TChartGroupsProperty=class(TComponentProperty) function GetComponentReference: TComponent; override; function GetSelections: IDesignerSelections; override; function AllEqual: Boolean; override; procedure Edit; override; function GetAttributes: TPropertyAttributes; override; procedure GetProperties(Proc: TGetPropProc); override; function GetEditLimit: Integer; override; function GetValue: string; override; procedure GetValues(Proc: TGetStrProc); override; procedure SetValue(const Value: string); override; end;2. 註冊此Editor procedure Register; implementation procedure Register; begin RegisterPropertyEditor(TypeInfo(TChartGroups),TBarChart,'ChartGroups',TChartGroupsProperty); end;note: 可參考 ..\delphi6\source\ToolsAPI\DesignEditors.pas |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |