Voila un bout de code.
Je voudrais, par exemple, insérer un élément "Nouveau" dans "Sous-élément 2", au même niveau que "Sous élément 3".
Évidemment, il faut faire ça en cliquant sur le bouton, pas en l'écrivant dans le code.
Je précise, au cas où...


Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
Enumeration
#Tree_0
#String_Niveau
#String_Texte
#Text_0
#String_Numero
#Text_1
#Text_2
#Btn_New
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 587, 247, 350, 300, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_TitleBar )
TreeGadget(#Tree_0, 5, 5, 220, 290)
TextGadget(#Text_0, 240, 10, 50, 15, "Niveau")
StringGadget(#String_Niveau, 240, 25, 50, 20, "")
TextGadget(#Text_1, 295, 10, 50, 15, "Numero")
StringGadget(#String_Numero, 295, 25, 50, 20, "")
TextGadget(#Text_2, 240, 60, 105, 15, "Texte")
StringGadget(#String_Texte, 240, 75, 105, 20, "")
ButtonGadget(#Btn_New, 240, 105, 105, 20, "Nouveau")
EndIf
EndProcedure
Open_Window_0()
AddGadgetItem (#Tree_0, -1, "Element 1", 0, 0)
AddGadgetItem (#Tree_0, -1, "Sous-Element 0", 0, 1)
AddGadgetItem (#Tree_0, -1, "Element 2", 0, 0)
AddGadgetItem (#Tree_0, -1, "Sous-élément 1", 0, 1)
AddGadgetItem (#Tree_0, -1, "Sous-élément 2", 0, 1)
AddGadgetItem (#Tree_0, -1, "Sous-élément 3", 0, 2)
AddGadgetItem (#Tree_0, -1, "Sous-élément 4", 0, 1)
AddGadgetItem (#Tree_0, -1, "Element 3", 0, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_New
; Deux possibilités que j'ai essayées, aucune ne fonctionne comme je le veux
AddGadgetItem(#Tree_0, Niveau+1, "Nouveau", 0, #PB_Tree_SubLevel)
;AddGadgetItem(#Tree_0, -1, "Nouveau", 0, Niveau+1)
Case #Tree_0
Select EventType()
Case #PB_EventType_LeftClick
Numero = GetGadgetState(#Tree_0)
Niveau = GetGadgetItemAttribute(#Tree_0, Numero, #PB_Tree_SubLevel)
Nom$ = GetGadgetItemText(#Tree_0, Numero)
SetGadgetText(#String_Niveau, Str(Niveau))
SetGadgetText(#String_Numero, Str(Numero))
SetGadgetText(#String_Texte, Nom$)
EndSelect
EndSelect
EndSelect
Until Quit