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 CheckListBox speichern? (https://www.delphipraxis.net/182616-checklistbox-speichern.html)

OrNEC 5. Nov 2014 11:43


CheckListBox speichern?
 
Hallo,

ich möchte den Zustand einer CheckListBox mit INI speichern. Habe so einiges hier im Forum gefunden, aber da wird entweder der Zustand der Items der Reihe nach gespeichert, oder die Namen der gecheckedten Items.

Mir passen aber beide Varianten nicht, weil bei mir neue Items dazukommen können, sie sind also nicht statisch und mit den Itemsnamen geht es auch nicht, da die Anwendung in mehreren Sprachen übersetzt ist.

Wie könnte ich das Speichern der CheckListBox für mein Fall richtig angehen?

Danke!


Nachtrag: ist es sinnvoll den Items eine ID in den Tag zu verpassen um sie so eindeutig zu identifizieren unabhängig von der Reihenfolge und Sprache? Das wäre jetzt mein Ansatz. Was sagen die Experten dazu?

Christian Seehase 5. Nov 2014 12:54

AW: CheckListBox speichern?
 
Moin,

wenn Du zu jedem Item eine eindeutige ID brauchst, die nicht vom Text bzw. der Postion des jeweiligen Items abhängt, kannst Du ja die Eigenschaft Object jedes Items dafür verwenden.
Hier muss ja nicht zwingend ein Objekt enthalten sein, es kann ja auch einfach eine Zahl sein.
Im Prinzip also dass, was Du mit dem Tag vorhattest, nur das die Items die Eigenschaft Tag nicht haben, sondern nur die gesamte CheckListbox)

OrNEC 5. Nov 2014 12:59

AW: CheckListBox speichern?
 
Zitat:

Zitat von Christian Seehase (Beitrag 1278756)
Moin,
Im Prinzip also dass, was Du mit dem Tag vorhattest, nur das die Items die Eigenschaft Tag nicht haben, sondern nur die gesamte CheckListbox)

Habe ich vor 1 Min. auch festgestellt. Das mit dem Object... hm... werde ich mir anschauen.

himitsu 5. Nov 2014 13:10

AW: CheckListBox speichern?
 
Zitat:

Zitat von OrNEC (Beitrag 1278744)
da die Anwendung in mehreren Sprachen übersetzt ist.

Darum speichert man ja auch nicht den "angezeigten" Namen Text, sondern den Internen oder eine ID. :zwinker:

Also Ja, du muß eben die ID speichern, bzw. einen eindeutigen und nicht lokalisierten Namen.

-> Anzeige vom Code trennen

OrNEC 5. Nov 2014 13:14

AW: CheckListBox speichern?
 
Zitat:

Zitat von himitsu (Beitrag 1278760)
Darum speichert man ja auch nicht den "angezeigten" Namen Text, sondern den Internen oder eine ID. :zwinker:

Wieso ist bei mir der Name immer leer, oder muss ich den manuell vergeben?

Delphi-Quellcode:
ShowMessage('Name: ' + CheckListBox1.Items.Names[1]); // ist immer leer

freak4fun 5. Nov 2014 13:30

AW: CheckListBox speichern?
 
Du solltest die Logik von der Darstellung lösen. Das bedeutet du hast eine Liste mit Objekten. Jedes Objekt hat die Eigenschaften Checked , Text und ID, womit du die Checkboxen erstellst. Das Objekt kannst du als Objekt in der Checkbox hinterlegen. Bei speichern vergleichst du die Objekte und dann ggf. auf Veränderungen. Das Speichern und laden übernimmt die Liste und das anzeigen die Form, anhand der übergebenen Liste.


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