Tak jsem všechno kromě ListBoxů vyřešil do registru, funguje to parádně. Teďka ještě ten Listbox, jenže jak na to?
Něco jako
Reg.WriteString('ListBox1', ListBox1.Items);
má problém s TStringem, což jsem předpokládal že ListBox má každý řádek jako vlastní String, takže to nepůjde.Na internetu jsem našel
var
s: String;
I: Integer;
begin
for I := 0 to ListBox1.Items.Count-1 do
s := ListBox1.Items[I] + #0;
s := s + #0;
with TRegistry.Create(KEY_WRITE) do
try
RootKey := HKEY_CURRENT_USER;
if OpenKey('Software\MyApp', True) then
Windows.RegSetValueEx(CurrentKey, 'Items', 0, REG_MULTI_SZ,
Pointer(s), SizeOf(Char) * (Length(s)+1));
finally
Free;
end;
end;
, nejde to nějak lépe a jednodušeji?