#PB_Any mit AddGadgetItem?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

#PB_Any mit AddGadgetItem?

Beitrag 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.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Re: #PB_Any mit AddGadgetItem?

Beitrag 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
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Re: #PB_Any mit AddGadgetItem?

Beitrag 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?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Re: #PB_Any mit AddGadgetItem?

Beitrag 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.
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: #PB_Any mit AddGadgetItem?

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten