[fpc-pascal] Usage of FieldAddress
Ryan Joseph
genericptr at gmail.com
Sun Apr 4 22:49:07 CEST 2021
> On Apr 4, 2021, at 2:36 PM, Sven Barth via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:
>
> The RTTI streaming relies on *published properties* (and published methods for the event handlers).
Sorry Sven, I'm not understand what I'm doing wrong. From original example "scale" is a published property right? So FieldAddress only works on published fields, which are not supported unless they are classes/interfaces.
type
TSomething = class(TPersistent)
private
m_scale: integer;
published
property scale: integer read m_scale write m_scale;
end;
I have used published properties like this for JSON streaming, i.e.:
type
TVectorObject = class(TPersistent)
private
components: array[0..2] of integer;
published
property x: integer read components[0] write components[0];
property y: integer read components[1] write components[1];
property z: integer read components[2] write components[2];
end;
which works just fine so I assume I can use the RTTI functions, just not FieldAddress.
Regards,
Ryan Joseph
More information about the fpc-pascal
mailing list