NumLock, Вы правы. Проглядел это в хелпе.
Всё теперь понятно.
Еще вопросик в догонку. Я так понял что Registry.RootKey := HKEY_CURRENT_USER; необходимо вызывать каждый раз перед открытием ключа, иначе после Registry.CloseKey; у меня Registry.RootKey становиться равным последнему открытому ключу. Это заметно при записи.
Код:
procedure TConnectToServerForm.FormClose(Sender: TObject;
var Action: TCloseAction);
var
i : Integer;
Registry: TRegistry;
begin
// Save list servers
Registry := TRegistry.Create;
Registry.RootKey := HKEY_CURRENT_USER;
Registry.OpenKey('Software\Configurator\ListServer', true);
for i := 0 to SQLServerComboBox.Items.Count - 1 do
begin
Registry.WriteString('server' + IntToStr(i), SQLServerCombobox.items.Strings[i]);
end;
Registry.CloseKey;
Registry.RootKey := HKEY_CURRENT_USER;
// Save position from server list to registry
Registry.OpenKey('Software\Configurator', true);
Registry.WriteInteger('LastIndexServerList', SQLServerCombobox.ItemIndex);
Registry.CloseKey;
Registry.RootKey := HKEY_CURRENT_USER;
// Save login servers to registry
Registry.OpenKey('Software\Configurator', true);
Registry.WriteString('LastLoginServerList', SQLLoginEdit.Text);
Registry.CloseKey;
Registry.Free;
end;
Если не указывать Registry.RootKey := HKEY_CURRENT_USER;
то у меня создаются ключи Software\Configurator\Software\Configurator
Я прав?