BUG: Get/SetGadgetItemState mit ListIconGadget

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

BUG: Get/SetGadgetItemState mit ListIconGadget

Beitrag von Justin »

Nabend,

wie im Titel beschrieben, Get/SetGadgetItemState funktioniert nicht mit dem ListIconGadget:

Code: Alles auswählen

Procedure Event_ListIcon()
  For i = 0 To CountGadgetItems(0)
    If GetGadgetItemState(0, i) = #PB_ListIcon_Checked
      Debug Str(i) + " -> Checked"
    EndIf
  Next
EndProcedure

OpenWindow(0,0,0,300,300,"ListIcon",#PB_Window_ScreenCentered)
ListIconGadget(0,10,10,280,250,"Namen",100, #PB_ListIcon_CheckBoxes)
ButtonGadget(1,10,275,80,20,"Test")

For i = 0 To 10
  AddGadgetItem(0,i,"Nachname " + Str(i + 1))
  SetGadgetItemData(0, i, i + 10)
Next

SetGadgetItemState(0, 1, #PB_ListIcon_Checked)

For i = 0 To CountGadgetItems(0) - 1
  If GetGadgetItemState(0, i) = #PB_ListIcon_Checked
    Debug "Checked"
  EndIf
Next

BindGadgetEvent(0, @Event_ListIcon())
Da muss wohl noch mit den State´s geklotzt werden - wahrscheinlich gehts noch bei keinem Gadget, steht aber nicht in der Einschränkungsliste.

Gruß
Justin
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: BUG: Get/SetGadgetItemState mit ListIconGadget

Beitrag von NicTheQuick »

Dickes Edit:
Ich bin fälschlicherweise davon ausgegangen, dass der Thread hier in "Bugs" steht und hab deswegen eine Antwort für Purebasic gegeben anstatt für Spiderbasic. Also bitte alles nachfolgende ignorieren.

Das ist kein Bug. Du machst es nur falsch.

Laut Hilfe steht bei 'GetGadgetItemState()':
PB-Hilfe hat geschrieben:- ListIconGadget(): gibt eine Kombination der folgenden Werte zurück:
#PB_ListIcon_Selected : Der 'Eintrag' ist ausgewählt
#PB_ListIcon_Checked : Der 'Eintrag' ist mit einem Häkchen versehen (#PB_ListIcon_CheckBoxes Flag).
#PB_ListIcon_Inbetween: Die Häkchen-Box des Eintrags befindet sich im "Dazwischen"-Status (nur mit #PB_ListIcon_ThreeState Flag).
Da das also eine Bit-Kombination ist, musst du es auch entsprechend prüfen, nämlich mit einem Bitweisen UND.

Code: Alles auswählen

Procedure Event_ListIcon()
	If EventType() = #PB_EventType_LeftClick
		For i = 0 To CountGadgetItems(0)
			If GetGadgetItemState(0, i) & #PB_ListIcon_Checked
				Debug Str(i) + " -> Checked"
			EndIf
		Next
	EndIf
EndProcedure

OpenWindow(0,0,0,300,300,"ListIcon",#PB_Window_ScreenCentered)
ListIconGadget(0,10,10,280,250,"Namen",100, #PB_ListIcon_CheckBoxes)
ButtonGadget(1,10,275,80,20,"Test")

For i = 0 To 10
	AddGadgetItem(0,i,"Nachname " + Str(i + 1))
	SetGadgetItemData(0, i, i + 10)
Next

SetGadgetItemState(0, 1, #PB_ListIcon_Checked)

For i = 0 To CountGadgetItems(0) - 1
	If GetGadgetItemState(0, i) & #PB_ListIcon_Checked
		Debug "Checked"
	EndIf
Next

BindGadgetEvent(0, @Event_ListIcon())

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Bild
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

Re: BUG: Get/SetGadgetItemState mit ListIconGadget

Beitrag von Justin »

Hi,

ja, war jetzt im original auch von mir richtig geschrieben mit "&" und er counter läuft auch ein über :) Läuft trotzdem nicht :(

Dann wollte ich mal wissen, wie das hier in "Anfänger" gelandet ist? Bin ziemlich sicher, dass ich das in SpiderBasic gepostet habe. Bitte (zurück) verschieben.


Gruß
Justin
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Antworten