Binär, hatte ich mir das gedacht, am absender kenne ich ja die Größe und der Empfänger kann die Lenght ja auslesen und dann entsprechend viel mehr lesen. Das müsste ich bei der Pointervariante allerdings auch machen.
Bleibt nun die Frage was günstiger ist, kannst du das nochmal genauer erklären?
Also würde ein dispose(MyChatMsg); bei gefüllten Inhalt (sei es nun ein String ode binäre Daten, ist beides vorgesehen) funtionieren, ohne ein Memory-Leak zu hinterlassen?
Wie sieht das mit der Performance aus, rekursiv bedeutet da ja meistens nichts so gutes, mit dem Pointer müsste ich aber auch manuell im Prinzip nichts anderes als erst:
Delphi-Quellcode:
dispose MyChatMsg.Content //Content: Pointer
dispose MyChatMsg;
[Edit] Die Sache hat sich denke ich erledigt, weil mir grade der Vorteil erst auffällt, dass ich wenn ich das Array nehm, ich ja den ganzen Record im Speicher behalten muss, weil ich ihn nicht freigeben kann, ohne das Array dabei zu verlieren (wenn ich alles richtig versteh) oder es erst zu kopieren, aber das ist nicht der Sinn der Sache. Wenn ich den Pointer nehm, kann ich den Inhalt unabhängig vom Rest der Nachricht behalten. Die prinzipielle Fragestellung, was besser funktioniert, würde mich aber trotzdem noch intressieren.