Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listbox abspeichern (https://www.delphipraxis.net/75006-listbox-abspeichern.html)

kaschte 12. Aug 2006 12:58


Listbox abspeichern
 
Wie kann ich den Inhalt der Listbox abspeichern und zwar nach jedem hinzufügen eines Items? Wenn möglichst sollte keine externe Datei erzeugt werden (wenn schon naja auch egal).

Lemmi 12. Aug 2006 13:04

Re: Listbox abspeichern
 
Hi,

Delphi-Quellcode:
Listbox1.Items.SaveToFile('tmp.txt');
das sollte dir weiterhelfen...da Tlistbox kein Onchange-Event hat, fügst die Zeile einfach da ein, wo du ein Item in die Listbox einfügst..

Klaus01 12. Aug 2006 13:06

Re: Listbox abspeichern
 
Zitat:

Zitat von kaschte
Wie kann ich den Inhalt der Listbox abspeichern und zwar nach jedem hinzufügen eines Items? Wenn möglichst sollte keine externe Datei erzeugt werden (wenn schon naja auch egal).

Wo willst Du denn abspeichern, wenn nicht auf einen Datenträger?
Im Speicher liegt das Item schon wenn es hinzugefügt wurde.

Grüße
Klaus

Neutral General 12. Aug 2006 13:06

Re: Listbox abspeichern
 
Oder wenn du es nicht als Datei speichern willst

Delphi-Quellcode:
var Sl: TStringlist;

ListBox1.Items.Add(ka);
Sl := ListBox1.Items;
Natürlich musst du die Stringliste auch vorher erstellen ;)

Gruß
Neutral General

kaschte 12. Aug 2006 13:11

Re: Listbox abspeichern
 
Danke! Machs jetzt mit nehr externen Datei.

Könnt ihr mir noch bei diesem Problem helfen?

JasonDX 12. Aug 2006 13:13

Re: Listbox abspeichern
 
Zitat:

Zitat von Neutral General
Oder wenn du es nicht als Datei speichern willst
Delphi-Quellcode:
Sl := ListBox1.Items;
Natürlich musst du die Stringliste auch vorher erstellen ;)

Da bringt das erstellen der StringListe nichts :zwinker: Du weist ihr direkt die Items zu, was aber gar nicht kompilieren wird ;) TStringList := TStrings; laeuft nicht, nur umgekehrt ginge es.
Was du ws meinst ist
Delphi-Quellcode:
S1.AddStrings(ListBox1.Items)
;)

greetz
Mike

kaschte 12. Aug 2006 13:17

Re: Listbox abspeichern
 
Ist auch egal. Da sowieso noch n paar Dateien dazukommen (zur exe Datei) kommts auf die eine auch nicht mehr drauf an.

Kann ich auch zwei Eigenschaften in nehm Listboxeintrag speichern?

_frank_ 12. Aug 2006 13:54

Re: Listbox abspeichern
 
die methode AddObject erlaubt es die einem Item einen pointer bzw. einen Integer anzuhängen. Mit der Eigenschaft Objects kannst du darauf zugreifen.
Beim destroy des forms bzw. beim löschen der items müssen mho die objekte freigegeben werden.

so in der Art zu zuweisen (TMyClass ist eine beispiel-klasse):

Delphi-Quellcode:
var myClass:TMyClass;
begin
  myclass:=TMyClass.create(...);
  //myclass definieren
  listbox1.items.addobject('item',myclass);
end;

//zum lesen
TMyClass(listbox1.Objects[i]).Eigenschaft;
Gruß Frank

DGL-luke 12. Aug 2006 15:43

Re: Listbox abspeichern
 
Der Soft Cast

Delphi-Quellcode:
(Objects[i] as TMyClass).Eigenschaft;
ist dem Hard Cast

Delphi-Quellcode:
TMyClass(Objects[i]).Eigenschaft;
fast immer vorzuziehen! Es wird dabei eine (meist zuverlässige) Überprüfung vorgenommen, ob wirklich auch ein TMyClass vorliegt, was andernfalls in ekligen AVs enden könnte!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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