Hallo,
du musst in deinem Stream Platz (m.size := GetDataSize) schaffen, bevor du dort etwas ablegen kannst - aber warum einen Stream? Ein einfacher String würde es doch auch tun und der Code wird ein wenig einfacher:
Delphi-Quellcode:
procedure LoadOptions(
const key,
name:
string; lines: TStrings);
var
reg: TRegistry;
s:
string;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey(key, False)
then
begin
SetLength(s, reg.GetDataSize(
name));
reg.ReadBinaryData(
name, s[1], Length(s));
lines.Text := s;
end else
if reg.KeyExists(key)
then
raise Exception.Create(ermLoadOptions);
finally
reg.free;
end;
end;
Getippt und nicht getestet.
Grüße vom marabu