Re: [fpc-pascal] List published properties of a class

2014-02-28 Thread Joao Morais

Em 09/02/14 18:05, Joao Morais escreveu:


Hello list. I need to list all published properties declared in a 
class, iow, removing properties inherited from the parent.


Up to now I am iterating typinfo.GetPropList, starting at:

GetTypeData(PTypeInfo(TheClass.ClassParent.ClassInfo))^.PropCount;

and it works (fpc 2.6.2). TheClass will never receive TObject. Is this 
the right way? Will such piece of code continue working in future 
versions of the rtl?


Resurrecting this old message. The point is: TObject.ClassInfo is and 
will always be a TypeInfo pointer? If so, out of curiosity, why declare 
it as Pointer? What comes to mind is circular reference, layer 
violation, something like this.


___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] List published properties of a class

2014-02-28 Thread Sven Barth
Am 28.02.2014 12:33 schrieb Joao Morais l...@joaomorais.com.br:

 Em 09/02/14 18:05, Joao Morais escreveu:


 Hello list. I need to list all published properties declared in a class,
iow, removing properties inherited from the parent.

 Up to now I am iterating typinfo.GetPropList, starting at:

 GetTypeData(PTypeInfo(TheClass.ClassParent.ClassInfo))^.PropCount;

 and it works (fpc 2.6.2). TheClass will never receive TObject. Is this
the right way? Will such piece of code continue working in future versions
of the rtl?


 Resurrecting this old message. The point is: TObject.ClassInfo is and
will always be a TypeInfo pointer? If so, out of curiosity, why declare it
as Pointer? What comes to mind is circular reference, layer violation,
something like this.

Yes, that is the reason. TTypeInfo (and PTypeInfo) is declared in unit
typinfo, but TObject and thus ClassInfo is declared in unit system which
does not use any other unit.

Also it will stay like this. It would break way too much code if we'd
change that.

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal