Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.136 Beiträge
 
Delphi 11 Alexandria
 
#1

INDY 10 Project, TRECORD im FUNKTIONSAUFRUF ENTFERNEN

  Alt 10. Nov 2011, 13:11
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.
  Mit Zitat antworten Zitat