Question portant cette fois-ci sur les TreeGadget ! :)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

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.

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() 
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Joubarbe
Messages : 93
Inscription : sam. 01/juil./2006 16:40

Message par Joubarbe »

Merci beaucoup Jacobus, c'est plus clair !
Répondre