Hallo,
erstmal danke für deine zügige und informative Antwort.
Ich habe das natürlich gleich mal getestet und dann wie folgt umgebaut:
Delphi-Quellcode:
Buffer := TMemoryStream.Create;
VSTObjects.Header.SaveToStream(Buffer);
Reg.WriteBinaryData(SSetVSTObjectsHeader, buffer, buffer.Size);
Buffer.Free;
Also ich habe nur das .memory von Buffer entfernt, da der Compiler mir gemeldet hat, dass ein "constant object nicht als var parameter übergeben werden darf".
So wie es aussieht speichert er die Infos aber korrekt ab.
Nun möchte ich sie allerdings auch wieder laden. Das mache ich momentan wie folgt:
Delphi-Quellcode:
if Reg.ValueExists(SSetVSTObjectsHeader) then
begin
Buffer := TMemoryStream.Create;
Reg.ReadBinaryData(SSetVSTObjectsHeader, Buffer, Buffer.Size);
VSTObjects.Header.LoadFromStream(Buffer);
Buffer.Free;
end;
Leider bekomme ich da den Fehler:
Delphi-Quellcode:
---------------------------
Debugger
Exception Notification
---------------------------
Project raised
exception class ERegistryException
with message '
Invalid data type for 'VSTObjects.Header'
'. Process stopped. Use Step
or Run
to continue.
---------------------------
OK Help
---------------------------