Dein Problem liegt in
procedure FillStream(AStream: TMemoryStream);
wenn du
AStream := TestStream;
machst, dann passiert nichts, denn der Parameter wird als Wert übergeben und eine Änderung des Parameters
bleibt nur in der Prozedur erhalten. Genauer gesagt, der Parameter AStream wird kopiert, und du änderst einfach nur
die lokale Variable.
Versuch mal
procedure FillStream(var AStream: TMemoryStream);
Ich würde dir jedoch empfehlen, innerhalb von FillStream keinen Stream zu erzeugen, sondern
dem Aufrufer dies zu überlassen. Dann kannst du nämlich Daten an beliebiger Stelle in einem Stream speichern.
Delphi-Quellcode:
procedure FillStream(AStream: TMemoryStream);
var
TestString :
string;
begin
if not Assigned(AStream)
then
exit;
//oder raise exception
TestString := '
TEST';
AStream.
Write(TestString[1], Length(TestString));
end;
var TestStream : TMemoryStream;
begin
TestStream := TMemoryStream.Create;
....
//hier z.B. weitere Daten schreiben
FillStream(AStream);