Bei dynamischen Arrays geht das so
nicht. Da muss das dann heißen :
Client.WriteBuffer(Array[0], length(Array)*sizeof(<Array-Elementtyp>);
Bei mehrdimensionalen, dynamischen Arrays ist das wieder anders. Ein solches Array ist nämlich eigentlich ein Array von Pointern, die (je nach Dimension) wieder auf weitere Arrays zeigen. Erst die Arrays der letzten Dimension enthalten dann die eigentlichen Array-Elemente. Da muss man dann mithilfe von for-Schleifen das ganze auftrennen. Also bei einem array mit den Längen a und b sähe das so aus:
Delphi-Quellcode:
Client.WriteInteger(length(Array)); //Damit der Emfpänger weiß, wie viele Werte durchkommen
for I:=0 to high(Array) do
Client.WriteBuffer(Array[I][0], length(Array[I])*size(<Array-Elementtyp>));