Zusammenfassend:
1. Streamposition vorher zurücksetzen, da Schreib- und Lesezugriffe den Positionszeiger versetzen.
2. CopyFrom() benutzen, da es sich um ein Objekt handelt und nicht um direkte Daten. Aber warum nutzt hier keiner (wie schon hier gepostet) als zweiten Parameter die 0? Schliesslich soll alles kopiert werden.
3. Akzeptiert aqDockingManager1.SaveToStream() wirklich nur einen MemoryStream oder doch vllt. einfach nur TStream? Weil warum nicht gleich den TFileStream angeben?
Wenn 3. nicht zutrifft:
Delphi-Quellcode:
procedure TForm10.dxBarButton7Click(Sender: TObject);
Var
fs: TFileStream;
ms: TMemoryStream;
Begin
ms := TMemoryStream.Create;
try
aqDockingManager1.SaveToStream(ms);
fs := TFileStream.Create('ZTest.txt', fmCreate);
try
fs.CopyFrom(ms, 0);
finally
fs.Free;
end;
finally
ms.Free;
end;
End;
Wenn 3. zutrifft:
Delphi-Quellcode:
procedure TForm10.dxBarButton7Click(Sender: TObject);
Var
fs: TFileStream;
Begin
fs := TFileStream.Create('ZTest.txt', fmCreate);
try
aqDockingManager1.SaveToStream(fs);
finally
fs.Free;
end;
End;