Page 1 sur 1

TreeGadget Bug ?

Publié : dim. 03/oct./2010 11:09
par G-Rom
Y a un bug avec les treegadget ? j'arrive pas à comprendre la logique du code...

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    TreeGadget(0, 10, 10, 160, 160)                                         ; liste arborescente standard
    TreeGadget(1, 180, 10, 160, 160, #PB_Tree_CheckBoxes|#PB_Tree_NoLines)  ; liste arborescente avec cases à cocher + sans lignes reliant les noeuds
    For ID = 0 To 1
      For a = 0 To 10
        AddGadgetItem (ID, -1, "Elément normal "+Str(a), 0, 0) ; si vous souhaitez ajouter une image, utilisez 
        AddGadgetItem (ID, -1, "Noeud "+Str(a), 0, 0)          ; ImageID(x) comme 4ème paramètre
        AddGadgetItem (ID, -1, "Sous-élément 1", 0, 1)         ; Ceux-là sont au premier sous-niveau 
        AddGadgetItem (ID, -1, "Sous-élément 2", 0, 1)
        AddGadgetItem (ID, -1, "Sous-élément 3", 0, 1)
        AddGadgetItem (ID, -1, "Sous-élément 4", 0, 1)
        AddGadgetItem (ID, -1, "Fichier "+Str(a), 0, 0) ; sous-niveau 0 à nouveau
      Next
    Next
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Re: TreeGadget Bug ?

Publié : dim. 03/oct./2010 14:43
par PAPIPP
Bonjour G_rom
Une humble explication en commentaire dans le code pris dans l'aide et un peu modifié.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    TreeGadget(0, 10, 10, 160, 160)                                         ; liste arborescente standard
    TreeGadget(1, 180, 10, 160, 160, #PB_Tree_CheckBoxes|#PB_Tree_NoLines)  ; liste arborescente avec cases à cocher + sans lignes reliant les noeuds
    For ID = 0 To 1
      For a = 0 To 10
        AddGadgetItem (ID, -1, "Elément normal "+Str(a), 0, 0) ; si vous souhaitez ajouter une image, utilisez placement dans la liste str(a)
        AddGadgetItem (ID, -1, "Noeud "+Str(10-a), 0, 0)          ; ImageID(x) comme 4ème paramètre  placement dans la liste str(10-a)
        AddGadgetItem (ID, -1, "Sous-élément 1", 0, 1)  ; enfant du niveau précédent placement str(10-a)dans la liste  niveau 0       
        AddGadgetItem (ID, -1, "Sous-élément 2", 0, 1) ; comme niveau précédent  enfant du niveau 0 placement stra(10-a) dans la liste 
        AddGadgetItem (ID, -1, "Sous-élément 3", 0, 2) ; enfant du niveau prédent (enfant du sous élément 2)
        AddGadgetItem (ID, -1, "Sous-élément 4", 0, 2)  ; même niveau que le précedent donc enfant du sous element 2
        AddGadgetItem (ID, -1, "Fichier "+Str(a), 0, 0) ; sous-niveau 0  donc GRAND parent de l'élément précédent (sous élément 4 et sous élément 3) 
                                                            ; et parent du niveau 1 (sous élément 2 et sous élément 1)
      Next
    Next
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Re: TreeGadget Bug ?

Publié : dim. 03/oct./2010 15:04
par G-Rom
Salut , tu as essayer sous Linux ?

AddGadgetItem (ID, -1, "Sous-élément 1", 0, 1) ; N'a pas d'enfant
AddGadgetItem (ID, -1, "Sous-élément 2", 0, 1) ; A des enfants...

Pourtant dans les options , rien indique cela ! :/

Image

Re: TreeGadget Bug ?

Publié : dim. 03/oct./2010 20:39
par PAPIPP
Non je n'ai pas essayé sous Linux
; AddGadgetItem (ID, -1, "Sous-élément 1", 0, 1) ; N'a pas d'enfant
; AddGadgetItem (ID, -1, "Sous-élément 2", 0, 1) ; A des enfants...
;
; Pourtant dans LES options , rien indique cela ! :/
Par contre j'ai la même chose sous XP ce qui est conforme à l'aide
Pour le TreeGadget(), le paramètre 'Options' est toujours requis. Il indique le niveau du nouvel élément. Si le niveau est plus grand que celui de l'élément précédent, le nouvel élément deviendra son 'enfant'. Si le niveau est plus petit, il sera ajouté après le 'parent' de l'élément précédent.
c'est pourquoi sous-élément 1 n'a pas d'enfant mais que sous-élément 2 en a

A+