procedure TfmDatabaseSet.SetDatabase;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_USERS;
    Reg.OpenKey('SOFTWARE\HS\DatabaseSet\',true);
    if valueexists('DatabaseKind') then
       Reg.WriteString('DatabaseKind',Combobox1.text);
    //if ...
    Reg.WriteString('ServerName',Edit4.text);
    //if ...
    Reg.WriteString('DatabaseName',Edit5.text);
  finally
    Reg.Free;
  end;
end;

解决方案 »

  1.   

    Reg.OpenKey('SOFTWARE\HS\DatabaseSet\DatabaseKind',true);
    Reg.OpenKey('SOFTWARE\HS\DatabaseSet\ServerName',true);
    Reg.OpenKey('SOFTWARE\HS\DatabaseSet\DatabaseName',true);
    你后面的OpenKey把前面的冲掉了    Reg.OpenKey('SOFTWARE\HS\DatabaseSet\DatabaseKind',true);
        Reg.WriteString('DatabaseKind',Combobox1.text);
        Reg.Closekey;
        Reg.OpenKey('SOFTWARE\HS\DatabaseSet\ServerName',true);
        Reg.WriteString('ServerName',Edit4.text);
        Reg.CloseKey;
        Reg.OpenKey('SOFTWARE\HS\DatabaseSet\DatabaseName',true);
        Reg.WriteString('DatabaseName',Edit5.text);
        Reg.CloseKey;
      finally
        Reg.CloseKey;
        Reg.Free;
      end;