Hallo,
eine etwas kompliziertere Angelegenheit.
Ich möchte aus einem beliebigen Record Asciistrings auslesen und setzen.
Dazu deklariere ich einen Record z.B.
Delphi-Quellcode:
TMyRecord = record
PLZ : string[6];
Ort : String[50];
end;
Ich rufe meine Procedure auf mit
Showrec(ImpRec, TypeInfo(TMyRecord) );
ImpRec ist eine Instanz von TMyRecord.
Dann werte ich die Typinformationen aus:
Delphi-Quellcode:
Context := TRttiContext.Create();
Inf := context.GetType( typeInf );
LRecord := Inf.asRecord;
f := LRecord.GetDeclaredFields;
for i := 0 to High(f) do
Listbox1.items.Add(f[i].Name + ' : ' + inttostr(f[i].Offset) );
Beim Iterieren durch f bekomme ich Feldnamen und Offset.
Leider aber nicht in der Deklarierungsreihenfolge.
Wie komme ich jetzt an die Stringlänge heran?
Also PLZ = 6 und Ort = 50?
Für einen Tipp dankbar.
Gruß
Peter