ich bin auf der Suche bei den Funktionen (siehe unten) nicht TMyRecord sondern ein beliebiges TRecord übergeben zu können, muss ich als Übergabe Parameter TPointer wählen oder gibt es eine andere Möglichkeit hier flexibel zu sein?
(Function overload eher nicht)
Delphi-Quellcode:
/// another record for demonstration issues
TMyRecord = record
Details: string[255];
FileName: string[255];
FileSize: Integer;
Recordsize : Integer;
end;
type
TMyThreadSafeRecord = class (TIdThreadSafe)
MyRecord : TMyRecord;
end;
function ByteArrayToMyRecord(ABuffer: TBytes): TMyRecord;
var
LDest: PAnsiChar;
begin
LDest := PAnsiChar(@Result);
Move(ABuffer[0], LDest[0], SizeOf(TMyRecord));
end;
function MyRecordToByteArray(AMyRecord: TMyRecord): TBytes;
var
LSource: PAnsiChar;
begin
LSource := PAnsiChar(@AMyRecord);
SetLength(Result, SizeOf(TMyRecord));
Move(LSource[0], Result[0], SizeOf(TMyRecord));
end;
end.