TreeGadget Bug ?

Codes specifiques à Linux
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

TreeGadget Bug ?

Message 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
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: TreeGadget Bug ?

Message 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
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: TreeGadget Bug ?

Message 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
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: TreeGadget Bug ?

Message 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+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Répondre