![]() |
ComboBox + edits speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich will meine ComboBox einträge sowie die edit´s speichern. hätte auch kein problem damit wenn es zwei dateien sind. ich weiß das es combobox1.items.savetofile gibt, aber hier werden ja nicht die werte gespeichert die ausgewählt waren. Also es soll auch gleich der wert ausgewählt werden, wenn ich die datei lade, den ich letztes mal ausgewählt hatte. In dem programm wo ich es brauche, habe ich ca. 20 comboboxen und 80 edit´s. Ich hoffe ihr könnt mir helfen! wenn es geht ein wenig ausführlich *g* Danke! (anhang: eine vereinfachte version für das problem - z.B. soll bei Schule: Gymnasium ausgewählt sein wenn ich es lade.) |
Re: ComboBox + edits speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
eine Möglichkeit wäre mit Hilfe von WriteComponent und ReadComponent diese ganzen Komponenten zu speichern. Dafür habe ich mal das onShow und das onClose Event des Formulars benutzt. Normalerweise speichert man die Einstellungen ja im AppData Verzeichnis. Aber das soll ja nur eine Demo sein.
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var FileStream: TFileStream; Pfad: AnsiString; loop: integer; begin Pfad:= extractfilepath(Application.ExeName)+ 'Einstellungen.txt'; if FileExists(Pfad) then begin FileStream:= TFileStream.Create(Pfad, fmOpenRead); try for loop := 0 to pred(ComponentCount) do if (Components[loop] is TCombobox) or (Components[loop] is TEdit) then FileStream.ReadComponent(Components[loop]); finally FileStream.Free; end; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var FileStream: TFileStream; loop: integer; begin FileStream:= TFileStream.Create(extractfilepath(Application.ExeName)+ 'Einstellungen.txt', fmCreate); try for loop := 0 to pred(ComponentCount) do if (Components[loop] is TCombobox) or (Components[loop] is TEdit) then FileStream.WriteComponent(Components[loop]); finally FileStream.Free; end; end; |
Re: ComboBox + edits speichern
Hi,
du könntest es mittels ![]() In einer Schleife gehst du alle ComboBoxen durch und speicherst den ItemIndex in der Ini mittels ![]() Hier nur ein Ansatz für's Speichern/Auslesen der ItemIndizes:
Delphi-Quellcode:
Mit den Edits geht das analog (alles ungetestet).
// Speichern
Ini := TIniFile.Create(...); try for i := 1 to Anzahl_der_ComboBoxen do Ini.WriteString('Vorauswahl', 'CB' + IntToStr(i), (FindComponent('ComboBox' + IntToStr(i) as TComboBox).ItemIndex); finally FreeAndNil(Ini); end; // Auslesen Ini := TIniFile.Create(...); try for i := 1 to Anzahl_der_ComboBoxen do (FindComponent('ComboBox' + IntToStr(i) as TComboBox).ItemIndex := Ini.ReadInteger('Vorauswahl', 'CB' + IntToStr(i), -1); // Bei -1 ist nichts vorausgewählt finally FreeAndNil(Ini); end; |
Re: ComboBox + edits speichern
Das hat ja echt genial funktioniert. Danke wollt ich noch sagen :P!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 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