4
想法很簡單 - 讓TDictionary與類名TComponent使用在TDictionary中使用「class」?
for enum in vm.ClassNameToComponent do
TLuaClassTemplate<enum.Value>.RegisterClass(vm.LS, PrintGlobal, container, vm);
用枚舉,而不是
TLuaClassTemplate<TButton>.RegisterClass(vm.LS, PrintGlobal, container, vm);
TLuaClassTemplate<TPanel>.RegisterClass(vm.LS, PrintGlobal, container, vm);
TLuaClassTemplate<TEdit>.RegisterClass(vm.LS, PrintGlobal, container, vm);
...
,並使用從XML採取的類名的通用基礎類工作。
但是有問題:
TClassNameToComponentDict = TDictionary<string, TComponent>;
...
ClassNameToComponent: TClassNameToComponentDict;
...
ClassNameToComponent := TClassNameToComponentDict.Create;
ClassNameToComponent.Add('TButton', TButton);
ClassNameToComponent.Add('TPanel', TPanel);
ClassNameToComponent.Add('TEdit', TEdit);
...
錯誤 「不兼容類型 'TComponent' 和 '類TButton的的'」。
如何使用TButton等「類」作爲通用值?
謝謝,解決了一個問題:) – user2091150 2013-03-24 15:59:25