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