SetGadgetItemData-Get...ItemData geht nicht?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

SetGadgetItemData-Get...ItemData geht nicht?

Beitrag 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 
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

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

Beitrag 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
a²+b²=mc²
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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
Antworten