Seite 1 von 1

#PB_Any mit AddGadgetItem?

Verfasst: 26.05.2010 12:38
von PureBasic4.0
Hallo,

ich möchte dynamisch Elemente in ein ListIcon-Gadget hinzufügen und wieder löschen. Beim Hinzufügen eines Elements in die Liste mit AddGadgetItem und #PB_Any als Position bekomme ich als Rückgabewert immer 0, das Objekt wird dennoch erzeugt.

Wird #PB_Any in den neueren Versionen nicht mehr von AddGadgetItem unterstützt? Wie identifiziert ihr die einzelnen Elemente im ListIconGadget?

Ich habe mir überlegt, eine Variable zu verwenden und diese bei jedem Hinzufügen eines Elements zu inkrementieren, aber sobald ein Element in der Liste gelöscht wird (irgendwo mittendrin), stimmt die Zahl nicht mehr, bzw. ich lasse eine Lücke.

Re: #PB_Any mit AddGadgetItem?

Verfasst: 26.05.2010 12:50
von tmjuk
hej,

das mit der Lücke wäre ja kein Problem.
Bei jedem Hinzufügen erhöhst du die Variable um 1.
Beim Entfernen eines Eintrages wird der Wert der Variable dann aber nicht verringert.
Und zusätzlich wird der Wert der Variable via SetGadgetItemData() in den Eintrag geschrieben.
Mit GetGadgetItemData() kann man den Wert wieder auslesen.

So hast du zu jedem Eintrag eine eindeutige Kennzeichnung.

Torsten

Re: #PB_Any mit AddGadgetItem?

Verfasst: 26.05.2010 12:53
von PureBasic4.0
Wird aber das letzte Element z.B. an Stelle 10 gelöscht und die Zählvariable steht schon auf 11, dann

Eintrag 8
Eintrag 9
Leer
Eintrag 11

Wenn der Eintrag 10 nicht existiert, wird Eintrag 11 nicht im ListIcon erstellt. Gibt es nicht noch eine andere Möglichkeit?

Re: #PB_Any mit AddGadgetItem?

Verfasst: 26.05.2010 13:11
von tmjuk
Warum sollte die nicht erstellt werden können?

Mit AddGadgetItem(gadget, -1, text) sollte doch ein neuer Eintrag ans Ende gehängt werden können.

Und da würde dann nach deinem Beispiel in den 10. Eintrag (weil der 10. wurde ja vorher gelöscht) mit
SetGadgetItemData() der Wert 11 geschrieben.

Re: #PB_Any mit AddGadgetItem?

Verfasst: 26.05.2010 15:53
von ts-soft
PureBasic4.0 hat geschrieben:Wird #PB_Any in den neueren Versionen nicht mehr von AddGadgetItem unterstützt? Wie identifiziert ihr die einzelnen Elemente im ListIconGadget?
-1 wurde schon immer für Eintrag hintendran verwendet und es gibt auch keinen Pointer zurück, da es ja auch kein Objekt ist.
Mit GetGadgetState kann man die Item-Nummer nach dem erstellen erfragen, wenn diese benötigt werden sollte.

Die Itemnummer ist im allgemeinen auch ohne Belang, lediglich was drinnen ist, wäre wichtig, hierfür gibts den passenden
Code hier: http://www.realsource.de/index.php/snip ... anelgadget
Einfach GadgetID in SetGadgetItemData und schon sollten alle Probleme gelöst sein :wink: