J'y ai ajouté les checkbox pour matérialiser cette utilisation. Tu devrais comprendre l'intérêt de chaque commande et les possibilités multiples qu'elles offrent.
Code : Tout sélectionner
Enumeration ; Id. Fenêtres
#fenetre_gamescreen
#Fenetre_Recherche
EndEnumeration
Enumeration ; Id. Gadgets
#Bouton_Recherche
#frame_main
#frame_2
#text1
#techtree
EndEnumeration
Enumeration ; Id. Menus
#menu_ecran
EndEnumeration
Enumeration ; Id. Menus Items
#menu_item_revenir
EndEnumeration
Procedure.l GF_RechercheScreen()
DisableWindow(#fenetre_gamescreen,#True)
If OpenWindow(#Fenetre_Recherche, 1, 1, 800, 600, "Recherche", #PB_Window_ScreenCentered)
descriptionrecherche.s = "Cliquez sur une technologie pour en avoir la description..."
If CreateMenu(#menu_ecran, WindowID(#Fenetre_Recherche))
MenuItem(#menu_item_revenir, "Fermer cette fenêtre")
EndIf
If CreateGadgetList(WindowID(#Fenetre_Recherche))
Frame3DGadget(#frame_main, 20, 1, 760, 560, "")
Frame3DGadget(#frame_2, 25, 452, 750, 100, "")
TextGadget (#text1, 30, 463, 740, 100, descriptionrecherche)
TreeGadget (#techtree, 25, 10, 750, 445, #PB_Tree_AlwaysShowSelection|#PB_Tree_CheckBoxes) ; ajout de la checkbox
AddGadgetItem(#techtree, -1, "Culturel")
AddGadgetItem(#techtree, -1, "Economique")
AddGadgetItem(#techtree, -1, "Militaire")
AddGadgetItem(#techtree, -1, "Scientifique")
AddGadgetItem(#techtree, -1, "Social")
AddGadgetItem(#techtree, -1, "Spirituel")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #techtree
Select EventType()
Case #PB_EventType_Change
Position.l = GetGadgetState(#techtree) ; renvoie le numero de l'item sélectionné
If Position <> -1 ; si un élément est sélectionné
ItemClick.s = GetGadgetItemText(#techtree, Position, 0); nouvelle variable chaîne récupérant le texte de l'item sélectionné
If ItemClick.s = "Culturel" ; si on click sur "Culturel"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" je ne sais pas ce que c'est mais ça ne fait rien"
SetGadgetText(#text1,descriptionrecherche)
ElseIf ItemClick.s = "Economique"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" Certainement une histoire de fric...Le plus à même de vous renseigner est l'oncle Picsou"
SetGadgetText(#text1,descriptionrecherche)
ElseIf ItemClick.s = "Militaire"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" Ségolène Royale n'y connait rien mais elle va bien nous sortir une de ses théories fumeuses "
SetGadgetText(#text1,descriptionrecherche)
ElseIf ItemClick.s = "Scientifique"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" Quelle signification donnez vous à ce mot? "
SetGadgetText(#text1,descriptionrecherche)
ElseIf ItemClick.s = "Social"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" Voir : Ségolène Royale "
SetGadgetText(#text1,descriptionrecherche)
ElseIf ItemClick.s = "Spirituel"
descriptionrecherche.s = "Vous avez sélectionné la technologie "+ItemClick+Chr(10)+" Voir : Spirituel "
SetGadgetText(#text1,descriptionrecherche)
EndIf
EndIf
Case #PB_EventType_LeftClick
Position.l = GetGadgetState(#techtree)
If Position <> -1
Etat = GetGadgetItemState(#techtree, Position); on regarde l'état de l'item
If Etat & #PB_Tree_Checked ; si l'élément est coché
;utilisation de debug, mais tu peux utiliser un autre textgadget()
Debug "Vous avez coché la technologie "+GetGadgetItemText(#techtree, Position, 0)
EndIf
EndIf
EndSelect
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case #menu_item_revenir
Break
EndSelect
EndSelect
ForEver
CloseWindow(#Fenetre_Recherche)
EndIf
DisableWindow(#fenetre_gamescreen, #False)
SetActiveWindow(#fenetre_gamescreen)
EndProcedure
Procedure.l GF_Screen()
If OpenWindow(#fenetre_gamescreen, 100, 100, 320, 240, "Programme", #PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#fenetre_gamescreen))
ButtonGadget(#Bouton_Recherche, 25, 25, 100, 25, "Recherche")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_Recherche
GF_RechercheScreen()
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
CloseWindow(#fenetre_gamescreen)
EndIf
EndProcedure
GF_Screen()