我有一個設置類,在我的系統中,我存儲重要設置的配置值。它看起來像下面的代碼,但具有更多不同類型的屬性。 現在我需要實現一個表單,我可以在運行時調整和配置這些設置。爲每個屬性實現字段非常麻煩,並保證所有值映射都沒有錯誤。是否有組件可以自動創建配置表單?
現在我的問題:是一個可以自動創建接口來解決這個問題的vcl組件。例如。提供一個樹狀或類似列表視圖的界面,其中包含屬性和字段的名稱以編輯值(如IDE中的屬性窗格,帶有打印機設置,請參見下面的截圖)。這將是一件好事。沒有?
你如何處理這樣的配置表單?
感謝您的輸入!
TGoldmannSettings = class
private
FInitialSymbolSize : Integer;
FPenWidth : Single;
FCanvasColor : TColor;
FShowLiveCoordinates : Boolean;
FFont1 : TFont;
FMsmPointSymbol : TAvailableSymbols; // own type
...
public
constructor Create;
destructor Destroy; override;
property SymbolSize : Integer read FInitialSymbolSize write FInitialSymbolSize;
property Font1: TFont read FFont1 write FFont1;
...
published
property PenWidth: Single read FPenWidth write FPenWidth;
property CanvasColor: TColor read FCanvasColor write FCanvasColor;
property ShowLiveCoordinates: Boolean read FShowLiveCoordinates write FShowLiveCoordinates;
...
end;
有時你找到我的意思是在打印機設置對話框:
VirtualTreeView在其[AdvancedDemo](http://code.google.com/p/virtual-treeview/source/browse/#svn%2Ftrunk%2FDemos%2FAdvanced)中有一個很好的屬性編輯器示例。您可能可以根據自己的需求對其進行自定義。 – TLama 2012-03-23 10:51:33
通常,我只是使用TForm類來保存設置,在啓動時創建它(但在用戶想要更改配置之前不會顯示它)。任何其他單位/班級/無論想要讀取設置,都必須從表單中獲取。這打破封裝,但我並不在乎這個特殊的目的,特別是因爲我有一種在會話之間持久化配置表單的方法。請注意,因爲我使用的是VCL表單,所以線程安全性是我必須明確處理的一個問題:(( – 2012-03-23 10:54:27
)JVCL擁有一個屬性編輯器組件,但不是您要查找的內容,但這可能就夠了 – dummzeuch 2012-03-23 12:53:00