Consider the following: type generic TGenClass<T> = class ... end;
TSpecType = specialize TGenClass<Integer>; TMyClass = class FST: TSpecType; procedure p; published ST: TSpecType read FST write FST; end; procedure TMyClass.p; ... begin PropCount := GetPropList(Self,Props); for i := 0 to PropCount - 1 do begin Prop := Props^[i]; PropName := Prop^.Name; case Prop^.PropType^.Kind of tkObject: begin Obj := GetObjectProp(Self,Prop); //1 ... end; end; end; end; In //1, GetObjectProp will return TObject for ST property. Since generic types without specialization cannot be used in type declaration, how can I get the actual type of ST and cast Obj to it so I can access its properties? Note that ST here is just an example, there could be multiple TGenClass specialization that TMyClass uses. -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/RTTI-and-generics-accessing-specialized-class-instance-tp5723011.html Sent from the Free Pascal - General mailing list archive at Nabble.com. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal