AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox + edits speichern

Ein Thema von PiQ · begonnen am 8. Jul 2007 · letzter Beitrag vom 11. Jul 2007
Antwort Antwort
PiQ

Registriert seit: 6. Okt 2006
42 Beiträge
 
Delphi 7 Personal
 
#1

ComboBox + edits speichern

  Alt 8. Jul 2007, 08:37
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.)
Angehängte Dateien
Dateityp: rar bsp_162.rar (337,9 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: ComboBox + edits speichern

  Alt 8. Jul 2007, 09:04
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;
Angehängte Dateien
Dateityp: zip bsp_819.zip (7,1 KB, 5x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: ComboBox + edits speichern

  Alt 8. Jul 2007, 09:11
Hi,

du könntest es mittels Delphi-Referenz durchsuchenFindComponent und Ini-Dateien lösen.
In einer Schleife gehst du alle ComboBoxen durch und speicherst den ItemIndex in der Ini mittels Delphi-Referenz durchsuchenWriteInteger. Diese liest du beim Programmstart aus und weist diesen den ComboBoxen wieder mittels Schleife und FindComponent zu. Hierfür müssen die Namen der Komponenten aus dem gleichen String mit fortlaufender Nummer bestehen (Bsp: ComboBox1, ComboBox2, ...).

Hier nur ein Ansatz für's Speichern/Auslesen der ItemIndizes:

Delphi-Quellcode:
// 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;
Mit den Edits geht das analog (alles ungetestet).
  Mit Zitat antworten Zitat
PiQ

Registriert seit: 6. Okt 2006
42 Beiträge
 
Delphi 7 Personal
 
#4

Re: ComboBox + edits speichern

  Alt 11. Jul 2007, 14:53
Das hat ja echt genial funktioniert. Danke wollt ich noch sagen !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz