Es würde doch dann ganz einfach auch reichen, wenn ich das Array fülle.
Entscheidend ist was hinten rauskommt.
Aber du "schlamperst" jetzt auch.
Wer sagt denn, dass data[1] = 0 ist?
Es hängt vom Zufall ab.
Delphi-Quellcode:
data[0] := length(Command) + 9;
data[1] := 0; // *
data[2] := 0; // *
data[3] := 0; // *
data[4] := 0;
Was machst du, wenn die Länge des "Command" mal den Wert von 256-9 überschreiten sollte?
Der Record hat den Vorteil, dass die Struktur klar festgelegt ist.
Keine Ahnung weshalb man
Indy nicht eine Write-Funktion spendiert hat, mit der man beliebige Datentypen schreiben kann (so wie bei TStream.Write()).
Dann muss man halt kopieren:
Delphi-Quellcode:
var
bytes : TIdBytes;
rconpacket : TRconPacket;
begin
...
SetLength(bytes, rconpacket.Size);
Move(rconpacket, bytes[0], rconpacket.Size);
idTCPClient1.IOHandler.Write(bytes);