Ich möchte mit Hilfe von GENERICS beliebige Records in ein ByteArray und wieder zurück umwandeln .
Für die Lösung wollte ich zum ersten mal GENERICS in Delphi verwenden.
Der Code unten spielt wenn ich anstelle von TGenericRecord eine beliebige Record Definition direkt einsetze.
Habe ich einen Denkfehler in meinem Ansatz ?
Delphi-Quellcode:
type
TGenericRecord <TRecordType> = class
/// value : TRecordType;
end;
///
/// --------------- HELPER FUNCTION FOR RECORD EXCHANGE ------------------
///
function MyRecordToByteArray(aRecord: TGenericRecord): TBytes;
var
LSource: PAnsiChar;
begin
LSource := PAnsiChar(@aRecord);
SetLength(Result, SizeOf(TGenericRecord));
Move(LSource[0], Result[0], SizeOf(TGenericRecord));
end;
function ByteArrayToMyRecord(ABuffer: TBytes): TGenericRecord;
var
LDest: PAnsiChar;
begin
LDest := PAnsiChar(@Result);
Move(ABuffer[0], LDest[0], SizeOf(TGenericRecord));
end;