On 09/07/2018 18:22, Ryan Joseph wrote:
Could I do some RTL magic on a record to loop over its fields and set them to 
another record by name? In the example below I want to set all the fields in 
TRecA to matching named fields in TRecB. Just curious if we can do this 
automatically using RTL.

type
        TRecA = record
                a: string;
                b: string;
        end;

type
        TRecB = record
                a: string;
                b: string;
                c: integer;
                d: integer;
        end;


for field in recA.GetFields do
        recB.GetFieldByName(field.name).value := field.value

I don't know about the loop, but if records with inheritance would help, you could do:

type

        TRecA = object
                a: string;
                b: string;
        end;

        TRecB = object(TRecA)
                c: integer;
                d: integer;
        end;

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

Reply via email to