Einzelnen Beitrag anzeigen

ghost1601

Registriert seit: 26. Aug 2006
64 Beiträge
 
Delphi 2005 Personal
 
#1

Einträge aus INI-Datei lesen

  Alt 1. Mär 2007, 18:14
Hallo,

zu meinem Problem, ich lass je nach Wahl die Einstellungen eines Programms in eine INI-Datei oder in die Windows Registry schreiben.
Delphi-Quellcode:
var regist: TRegistry;
    ini: TIniFile;
begin
if ComboBox4.Text='Windows Registry'
  then
    begin
      regist:=TRegistry.Create(Key_Write);
      regist.RootKey:=HKEY_CURRENT_USER;
      regist.OpenKey('Software\zibolsky-product\Clandatenbank\1.4', true);
      regist.WriteString('Auto-Save', ComboBox1.text);
      regist.WriteString('Browser', ComboBox2.text);
      regist.WriteString('Nav', Combobox3.text);
      regist.WriteString('verzeichnis', ComboBox4.Text);
      regist.free;
    end
  else
    begin
      ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'einstellungen.ini');
      ini.WriteString('Auto-Save','Einstellung', Combobox1.Text);
      ini.WriteString('Browser', 'Browser', ComboBox2.Text);
      ini.WriteString('Navigation', 'Nav', ComboBox3.Text);
      ini.free;

      regist:=TRegistry.Create(Key_Write);
      regist.RootKey:=HKEY_CURRENT_USER;
      regist.OpenKey('Software\zibolsky-product\Clandatenbank\1.4', true);
      regist.WriteString('verzeichnis', ComboBox4.Text);
      regist.free;
      ComboBox4.Text:='INI-Datei';
    end;
end;
Diese Einträge stehen nach dem Schließen des Einstellungsmenüs auch in der angegeben INI, jedoch sollen diese nach einem Neustart des Programms auch wieder dort stehen.
Das hab ich mit folgendem Zeilen versucht.
Delphi-Quellcode:
var regist: TRegistry;
    ini: TIniFile;
    verzeichnis:string;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\zibolsky-product\Clandatenbank\1.4', true);
  verzeichnis:=regist.ReadString('verzeichnis');
  regist.free;

if verzeichnis='Windows Registry'
  then
    begin
        regist:=TRegistry.Create;
        regist.RootKey:=HKEY_CURRENT_USER;
        regist.OpenKey('Software\zibolsky-product\Clandatenbank\1.4', true);
        ComboBox1.Text:=regist.ReadString('Auto-Save');
        ComboBox2.Text:=regist.ReadString('Browser');
        ComboBox3.Text:=regist.ReadString('Nav');
        ComboBox4.Text:=regist.ReadString('verzeichnis') ;
        regist.free;
    end
  else
    begin
        ini:=TIniFile.Create('einstellungen.ini');
        ComboBox1.Text:=ini.ReadString('Auto-Save','Einstellung', '');
        ComboBox2.Text:=ini.ReadString('Browser','Browser', '');
        ComboBox3.Text:=ini.ReadString('Navigation', 'Nav', '') ;
        ini.free;
        ComboBox4.Text:=verzeichnis;
    end;
end;
Die Variable "verzeichnis" gibt dabei an welchen Speicherort der Benutzer ausgewählt hat, er wird in der Registry gespeichert.
Wo liegt nun aber das Problem? Es sollten doch alle Einstellungen, die in der INI stehen auch ins Programm geladen werden oder?
Sieht jemand einen Fehler?

Thx
  Mit Zitat antworten Zitat