Publié : lun. 31/juil./2006 9:49
Je te remet ton code modifié avec l'utilisation des deux fonctions dans le même TreeGadget() pour une vision plus évidente
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.
@+
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()