Seite 1 von 1

SetGadgetItemData-Get...ItemData geht nicht?

Verfasst: 07.04.2006 17:12
von dysti
Hey,

habe folgenden Code erstellt, aber SetGadgetItemData setzt bzw. GetGadgetItemData gibt falschen Wert zurück. Was ist falsch?
Normal sollte beim Anklicken von "Seite1" der Wert " Baum 1" angezeigt werden.

Code: Alles auswählen

Enumeration 1
  #Window_Form1
  #Gadget_Text1
  #Gadget_Tree1
EndEnumeration

text.s="0"
If OpenWindow(#Window_Form1, 100, 200,200, 300,"Gadgettest" ,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
  
  CreateGadgetList(WindowID(#Window_Form1))
    TextGadget(#Gadget_Text1, 25,  230, 150, 60,text) 
    TreeGadget(#Gadget_Tree1,  25, 10, 150, 200,#PB_Tree_CheckBoxes)
  
    ;Erste Kennung setzen
    AddGadgetItem(#Gadget_Tree1, 1, "Seite1",0,0)
    SetGadgetItemData(#Gadget_Tree1, 1, 1) ;Kennung=1
    
    AddGadgetItem(#Gadget_Tree1, 2, "Absatz1",0,1)
    AddGadgetItem(#Gadget_Tree1, 3, "Absatz2",0,1)
    AddGadgetItem(#Gadget_Tree1, 4, "Absatz3",0,1)
    
    ;zweite Kennung setzen
    AddGadgetItem(#Gadget_Tree1, 5, "Seite2",0,0)
    SetGadgetItemData(#Gadget_Tree1, 5, 2) ;Kennung=2
    
    AddGadgetItem(#Gadget_Tree1, 6, "Absatz1",0,1)
    AddGadgetItem(#Gadget_Tree1, 7, "Absatz2",0,1)
    AddGadgetItem(#Gadget_Tree1, 8, "Absatz3",0,1)
   
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget    
      Select EventGadget()
        Case #Window_Form1
          EventID = #PB_Event_CloseWindow
        Case #Gadget_Tree1
          item  = GetGadgetState(#Gadget_Tree1)
          value = GetGadgetItemData(#Gadget_Tree1, item)
          text="angeklickt -> Baum: " + Str(value) + Chr(13) + Chr(10) + "Zweig: " + GetGadgetText(#Gadget_Tree1)
          SetGadgetText(#Gadget_Text1,text)
     EndSelect
    EndIf  
  Until EventID = #PB_Event_CloseWindow
EndIf
End 

Verfasst: 07.04.2006 17:30
von dysti
Habe den Fehler gefunden.
Man mußt bei SetGadgetItemData den zweiten Parameter -1 nehmen.
Beispiel:

Code: Alles auswählen

AddGadgetItem(#Gadget_Tree1, 2, "Absatz1",0,1)
    SetGadgetItemData(#Gadget_Tree1, 1, 1) ; nicht 2,1 setzen (-1)
    AddGadgetItem(#Gadget_Tree1, 3, "Absatz2",0,1)
    SetGadgetItemData(#Gadget_Tree1, 2, 1)

Re: SetGadgetItemData-Get...ItemData geht nicht?

Verfasst: 07.04.2006 17:31
von Kiffi
> Was ist falsch?

die Positionen sind nullbasiert anzugeben:

Code: Alles auswählen

  ;Erste Kennung setzen
  AddGadgetItem(#Gadget_Tree1, 0, "Seite1",0,0)
  SetGadgetItemData(#Gadget_Tree1, 0, 1) ;Kennung=1
  
  AddGadgetItem(#Gadget_Tree1, 1, "Absatz1",0,1)
  AddGadgetItem(#Gadget_Tree1, 2, "Absatz2",0,1)
  AddGadgetItem(#Gadget_Tree1, 3, "Absatz3",0,1)
  
  ;zweite Kennung setzen
  AddGadgetItem(#Gadget_Tree1, 4, "Seite2",0,0)
  SetGadgetItemData(#Gadget_Tree1, 4, 2) ;Kennung=2
  
  AddGadgetItem(#Gadget_Tree1, 5, "Absatz1",0,1)
  AddGadgetItem(#Gadget_Tree1, 6, "Absatz2",0,1)
  AddGadgetItem(#Gadget_Tree1, 7, "Absatz3",0,1)
Grüße ... Kiffi

Verfasst: 07.04.2006 21:01
von dysti
Entschuldige Kiffi.
da habe ich den Wald vor lauter Bäume nicht gesehen.
Mit der "Null", da bin ich einfach nicht da rauf gekommen, wobei das ja naheliegend ist.
Danke.
Dysti