![]() |
INI File & ComboBox
Hallo Liebe DP'ler hallo Wicht,
vielleicht liest Wicht mit und kann mir auch Helfen. Ich möchte meinem Programm die Mehrsprachigkeit spendieren. Nun möchte ich aus der ComboBox in der die Sprachen sind das in ein INI File Speichern damit ich immer die gleiche Sprache laden kann wie zuletzt gewählt. Die INI erstellen habe ich verstanden:
Delphi-Quellcode:
Aber ich raffe es nicht bei allen Postings wie ich die ComboBox auslesen kann und in die INI schreibe.
uses IniFiles;
... var ini: TIniFile; filename: String; begin filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini'; ini := TIniFile.Create(filename); Ich habe das Tut vom ![]() ändern der Auswahl von der ComboBox machen. Ich weis, Ihr macht es ungern Fertigen Delphi Code zu präsentieren aber ich komme mit meinem Verständnis nicht weiter. Denn ich habe 4 weitere Form's bei denen ich dann die Combobox wieder auslesen würde aus der INI. Ich habe ein Delphi XE3 Architect EDU. Grüsse Chris |
AW: INI File & ComboBox
Mir ist der Zusammenhang zwischen ComboBox und IniFile noch nicht ganz klar. Was genau steht in der ComboBox und was willst Du wohin speichern?
|
AW: INI File & ComboBox
Ich verstehe jetzt nicht ganz genau, wo das Problem ist. Wie man in eine Ini schreibt bzw. daraus liest?
z.B. im OnChange Event der Combobox in die ini schreiben:
Delphi-Quellcode:
im OnCreate oder OnShow eines Formulares dann auslesen:
const
Sektion='DerNameDerSektion'; Eintrag='DerNameDesEintrages'; var ini: TIniFile; filename: String; begin filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini'; ini := TIniFile.Create(filename); ini.WriteString(Sektion,Eintrag,combobox1.Text); ini.Free; end;
Delphi-Quellcode:
const
Sektion='DerNameDerSektion'; Eintrag='DerNameDesEintrages'; var ini: TIniFile; filename: String; begin filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini'; ini := TIniFile.Create(filename); combobox1.Text:=ini.ReadString(Sektion,Eintrag,combobox1.Text); //In einem Formular, in dem nur die Sprache gesetzt werden soll, wo also keine Combobox ist //muss natürlich entsprechend eine variable gefüllt oder eine Prozedur bedient werden: SpracheSetzen(ini.ReadString(Sektion,Eintrag,'Deutsch')); ini.Free; end; |
AW: INI File & ComboBox
Hallo,
in Combobox.text steht der aktuell angezeigte Wert. Grüße Klaus |
AW: INI File & ComboBox
BTW: Wenn es sich nicht um eine portable Anwendung handelt, gehört sie ins Programme-Verzeichnis. Dort hast Du aber normalerweise als Standard-Benutzer keine Schreibrechte. Ich würde daher die Ini ins AppData-Verzeichnis des Benutzers verschieben, so hat jeder Benutzer seine eigenen Einstellungen.
|
AW: INI File & ComboBox
gerade im Druck daher kommentarlos ...
Code:
[english]
Button1=Button X Button2=Button Y [deutsch] Button1=Knopf X Button2=Knopf Y
Delphi-Quellcode:
uses Inifiles;
const C_IniFile = 'C:\temp\trans.ini'; procedure TForm1.ComboBox1CloseUp(Sender: TObject); var ini: TInifile; sl: TStringList; i: Integer; c: TComponent; begin sl := TStringList.Create; try ini := TInifile.Create(C_IniFile); try ini.ReadSectionValues(ComboBox1.Items[ComboBox1.ItemIndex], sl); for i := 0 to sl.Count - 1 do begin c := TComponent(FindComponent(sl.Names[i])); if Assigned(c) then (c as TControl).SetTextBuf(Pchar(sl.ValueFromIndex[i])); end; finally ini.Free; end; finally sl.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); var ini: TInifile; begin ini := TInifile.Create(C_IniFile); try ini.ReadSections(ComboBox1.Items); finally ini.Free; end; end; |
AW: INI File & ComboBox
DRY
Delphi-Quellcode:
Zum try-finally-Block sag ich jetzt mal nichts.
const
ININAME = 'C:\temp\trans.ini'; ... ini:=TInifile.Create(ININAME); |
AW: INI File & ComboBox
@DeddyH
[OT] Willst Dich schon jetzt als Papst bewerben:gruebel: Er hat doch geschrieben, daß das bloß eine Anregung ist.[/OT] Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz