[fpc-pascal] List published properties of a class

Sven Barth pascaldragon at googlemail.com
Fri Feb 28 13:01:16 CET 2014


Am 28.02.2014 12:33 schrieb "Joao Morais" <l at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20140228/88d8754e/attachment.html>


More information about the fpc-pascal mailing list