Показать сообщение отдельно
  #7  
Старый 08.09.2010, 17:22
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

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

Я прав?
Ответить с цитированием