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