Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#4

Re: Stream in Registrierung speichern

  Alt 22. Dez 2005, 12:02
Da hast du einen Fehler gemacht, den ich Anfangs auch immer gemacht habe.


Delphi-Quellcode:
if Reg.ValueExists(SSetVSTObjectsHeader) then
begin
  Buffer := TMemoryStream.Create;
  Reg.ReadBinaryData(SSetVSTObjectsHeader, Buffer, Buffer.Size);

// Buffer.Position ist jetzt auf Position buffer.size.
// Daher musst du die Position zurücksetzen

  buffer.position := 0;

// Jetzt sollte es gehen

  VSTObjects.Header.LoadFromStream(Buffer);
  Buffer.Free;
end;
Siehe Kommentare im Code.

Ich vermute mal, dass VSTObjects.Header.LoadFromStream die Position nicht zurücksetzt.
Da aber die Position von buffer auf buffer.size steht, wird nicht kopiert
VSTObjects.Header.LoadFromStream(Buffer); liefert einen leeren Stream, der natürlich keine Header-Informationen besitzt...
  Mit Zitat antworten Zitat