Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: [RTTI] an Klassennamen der TCollectionItems herankommen

  Alt 4. Aug 2006, 22:45
Hallo Frank,

der folgende Code könnte funktionieren:

Delphi-Quellcode:
function getCollectionClass(classname,propname:string):string;
var ti:pTypeinfo;
    td:pTypeData;
    Comp:TComponent;
    Coll:TCollection;
begin
  ti:=FindTypeInfo(classname);
  td:=GetTypeData(ti);
  Comp:=TComponentClass(TD.ClassType).Create(nil);
  Coll:=TCollection(GetOrdProp(Comp, propname));
  Result:=Coll.ItemClass.ClassName;
  Comp.Free;
end;
Im Unterschied zu deinem Code wird hier das Control selbst (z.B. TStatusBar) temporär erzeugt. Ich habe leider keine andere Möglichkeit gefunden, die abzufragende Eigenschaft (Panels.ItemClass) zu initialisieren. Für den produktiven Einsatz solltest du natürlich noch die üblichen Sicherheitsabfragen einbauen.

Gruß Hawkeye
  Mit Zitat antworten Zitat