TreeGadget Probleme

Für allgemeine Fragen zur Programmierung mit PureBasic.
supermario
Beiträge: 6
Registriert: 27.09.2004 13:37
Wohnort: Wilhelmshaven

TreeGadget Probleme

Beitrag von supermario »

Hi,

das erstellen eines TreeGadgets samt Nodes klappt bei mir problemlos, aber wenn ich im Programmverlauf Nodes öffne und Items eintrage, kommt das System durcheinander und schreibt die Items in die Rootnode. Hat jemand von Euch ein Sample, in dem dynamisch mit den TreeNodes gearbeitet wird, also die Nodes mehrmals im Programmverlauf geöffnet und geschlossen werden?

Besten Dank,
SUPERMARIO :freak:
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Du musst bei der Position in AddGadgetItem(#Gadget, Position, Text$ [, ImageID]) auch den gewünschten Knoten bei "Position" eintragen. Bleibt es bei -1 wird der Eintrag am Ende ganz unten rein gesetzt. Wenn das so nicht geht, versuch es mal mit "OpenTreeGadgetNode()" und öffne zuerst die Stelle wo das neue Objekt rein soll, vielleicht geht's dann.

Und Beispiele solltest du eigentlich im CodeArchiv finden (zu downloaden auf purearea.net). ;)
supermario
Beiträge: 6
Registriert: 27.09.2004 13:37
Wohnort: Wilhelmshaven

Beitrag von supermario »

ich sehe die Listings im purearea.net gerade durch, vielleicht finde ich ja noch was. Hier ist mein Listing. Das wiederöffnen klappt dort nicht, wenn die Node bereits geschlossen wurde. Vielleicht nur ein dummer Programmierfehler?

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1360

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Tree_0
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
    If CreateGadgetList(WindowID())
      TreeGadget(#Tree_0, 35, 50, 200, 210)
        AddGadgetItem(#Tree_0, -1, "Eintrag 1")
        AddGadgetItem(#Tree_0, -1, "Eintrag 2")
        AddGadgetItem(#Tree_0, -1, "Knoten 1")
        OpenTreeGadgetNode(#Tree_0, -1)
          AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 1")   
          AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 2")
          AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 3")   
        CloseTreeGadgetNode(#Tree_0)                                  
        AddGadgetItem(#Tree_0, -1, "Eintrag 3")                
        AddGadgetItem(#Tree_0, -1, "Knoten 2")
        OpenTreeGadgetNode(#Tree_0, -1)
          AddGadgetItem(#Tree_0, -1, "Knoten 2 Eintrag 1")   
          AddGadgetItem(#Tree_0, -1, "Knoten 2 Eintrag 2")
          AddGadgetItem(#Tree_0, -1, "Knoten 2 Eintrag 3")   
        CloseTreeGadgetNode(#Tree_0)  
        AddGadgetItem(#Tree_0, -1, "Eintrag 4")   
    EndIf

;---HIER
    ;Knoten 1 wieder öffnen..
    OpenTreeGadgetNode(#Tree_0, 2)
      AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 4")   
      AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 5")
      AddGadgetItem(#Tree_0, -1, "Knoten 1 Eintrag 6")   
    CloseTreeGadgetNode(#Tree_0)
;---BIS HIER

  EndIf
EndProcedure


Open_Window_0()

Repeat
  
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    
    ;Debug "WindowID: " + Str(EventWindowID())
    
    GadgetID = EventGadgetID()
    
    If GadgetID = #Tree_0
      Debug "GadgetID: #Tree_0 Position:"+Str(GetGadgetState(#Tree_0))
      
    EndIf
    
  EndIf
  
Until Event = #PB_EventCloseWindow

End
[EDIT Danilo] Code-Tags gesetzt
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Code: Alles auswählen

AddGadgetItem(#Gadget, -1, "text")
erstellt am ENDE der entsprechenden Liste die Einträge.
Bei nachträglichem 'Einfügen' mußt Du schon etwas
konkreter adressieren. :wink:

Code: Alles auswählen

    OpenTreeGadgetNode(#Tree_0, 2)     
      count=CountTreeGadgetNodeItems(#Tree_0, 2)
      AddGadgetItem(#Tree_0, 2 + count + 1, "Knoten 1 Eintrag 4")    
      AddGadgetItem(#Tree_0, 2 + count + 2, "Knoten 1 Eintrag 5") 
      AddGadgetItem(#Tree_0, 2 + count + 3, "Knoten 1 Eintrag 6")    
    CloseTreeGadgetNode(#Tree_0)

Gruß,
Mischa
supermario
Beiträge: 6
Registriert: 27.09.2004 13:37
Wohnort: Wilhelmshaven

Beitrag von supermario »

danke, sehr freundlich :oops:

Gruß
SUPERMARIO
Antworten