> On Apr 4, 2021, at 2:36 PM, Sven Barth via fpc-pascal 
> <fpc-pascal@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

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to