Hallo,
ich gebe Deinen Code jetzt mal in gekürzter Fassung wieder:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
const
Sektion='language';
Eintrag='last language';
var
ini: TIniFile;
begin
ini := TIniFile.Create(filename);
try
ini.WriteString(Sektion,Eintrag,ComboBox1.Text);
finally
Ini.Free;
end;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
begin
ini := TIniFile.Create(filename);
try
ComboBox1.Text := Ini.ReadString('Sektion', 'Eintrag', 'Wert');
finally
ini.Free;
end
end;
Aua!
Dein FormClose schreibt:
Code:
[language]
last language=das was in ComboBox1.Text steht
Dein FormCreate ließt (bzw. möchte lesen):
Da vermutlich weder der Abschnitt Sektion, noch der Schlüssel Eintrag existiert bzw. dem Schlüssel Eintrag kein Wert zugewiesen ist, steht am Ende der string 'Wert' in ComboBox1.Text drin - und das ist dann schon richtig so.
Versuche es mal so (das mit dem filename musst Du halt noch ergänzen):
Delphi-Quellcode:
const
Sektion = 'language';
Eintrag = 'last language';
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
ini: TIniFile;
begin
ini := TIniFile.Create(filename);
try
ini.WriteString (Sektion, Eintrag, ComboBox1.Text);
finally
Ini.Free
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
begin
ini := TIniFile.Create(filename);
try
ComboBox1.Text := Ini.ReadString (Sektion, Eintrag, 'Default');
finally
ini.Free
end
end;
[EDIT]
Scheinbar ändert sich filename in Deiner Anforderung nicht; deshalb wäre es sinnvoll, dass Du Dir diese Geschichte nur einmal (FormCreate) zusammenschraubst und anschließend nur noch darauf zugreifst. Also:
Delphi-Quellcode:
type
TForm1 = class (TForm)
private
FIniFileName : string;
end;
procedure TForm1.CloseForm (Sender : TObject);
begin
ini := TIniFile.Create (FIniFileName);
// Rest wie gehabt
end;
procedure TForm1.CreateForm (Sender : TObject);
begin
FIniFileName := ExtractFilePath (ParamStr (0)) + 'ini\einstellungen.ini';
// Rest wie gehabt
end;
[/EDIT]
Gruß