Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - ListBox Strings speichern


johannes - So 24.11.02 13:25
Titel: ListBox Strings speichern
Hallo,
weiß jemand eine Möglichkeit Strings während der Laufzeit in einer Listbox
zu speichern.
Also zur Entwurfszeit kann ich ja in dem Stringlist Editor Strings eingeben , die auch dort gespeichert bleiben.
Dies würde ich auch gern zu LZ machen, ohne Strings in einer extra txt zu speichern.

Vielen dank


Johannes


Klabautermann - So 24.11.02 13:32

Hallo,

dannst die Zeilenweise mit hinzufügen, das geht so:

Quelltext
1:
ListBox1.Items.Add('Neuer Eintrag');                    

Du kannst auch alle Zeilen durch ein Komma Getrennt auf einmal eingeben. Das setzt natürlich vorraus, das die einzelnen Strings kei Komma enthalten:

Quelltext
1:
ListBox1.Items.CommaText := 'Zeile 1, Zeile 2, Zeile 3';                    


Gruß
Klabautermann


johannes - So 24.11.02 14:05
Titel: Listbox String speichern
Hallo Klabautermann,
schon mal vielen Dank für die schnelle Antwort.

Das mit der Items Eigenschaft war mir klar. Zur genaueren Problembeschreibung Folgendes.

ein Form mit einem Edit1 und einer ListBox1:
Beim laden der Form ist die Listbox leer.

Nun gebe ich in das Edit1 einen String ein. Durch das DplClickEvent des Edit1 schreibe ich den String in die ListBox1(alles OK).

Nun schließe ich das Form1.
Beim erneuten öffnen ist die LB leer. Sie sollte aber den vorher geschriebenen String enthalten. Das ist mein Problem ( sorry möchte nicht nerven, vielleicht übersehe ich irgendwas ).


Johannes


wulfskin - So 24.11.02 14:37

Hallo Johannes!

Woher soll das Programm auch wissen, dass beim letzten öffnen irgend ein Eintrag drin war? Es weiss es nicht und deshalb musst du beim "zerstören" der Programms, also bei OnDestroy, die Liste abspeichern. Beim "erstellen" musst du diese Liste dann wieder laden:

Quelltext
1:
2:
3:
4:
5:
OnDestroy:
  ListBox1.Items.SaveToFile('Test.txt');

OnCreate:
  ListBox1.Items.LoadFromFile('Test.txt');
Gruß wulfskin!


Klabautermann - So 24.11.02 14:41

Hallo noch mal.

Dann musst du bei Beenden des Programms mit ListBox1.Items.SaveToFile(Dateiname) speichern und beim Starten mit ListBox1.Items.LoadFromFile(Dateiname) wieder Laden.


Gruß
Klabautermann