Page 1 sur 1

Comment déclencher une action avec un TreeGadget ?

Publié : mar. 14/sept./2021 10:04
par Micoute
Bonjour à tous,

j'aimerais savoir comment lancer un programme en cliquant sur un élément d'un treeGadget, ça ne doit pas être très compliqué, je suppose qu'on doit utiliser un GetGadgetState(#Tree_praticien), mais je ne vois pas comment faire un BindGadgetEvent()

Si vous pouvez m'aider, je ne vous remercierai jamais assez, donc je vous remercie déjà.

Code : Tout sélectionner

; Menu principal surveillance patient

EnableExplicit

;- Enumerations
Enumeration Fenetres
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Txt_Praticiens
  #Txt_Diabete
  #Tree_praticiens
  #Tree_Diabete
EndEnumeration

Enumeration Polices
  #Police
EndEnumeration

;- Chargement des polices
LoadFont(#Police, "Arial Nova", 14, #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(#Police))

;- Variables
Global Rep$ = GetPathPart(ProgramFilename()) : SetCurrentDirectory(Rep$)
Global Evenement

;- Déclaration des procédures
Declare Programme_principal()
Declare Quitter()
Declare Capteur()
Declare Saisie()
Declare Pompe()
Declare Resultats()

Programme_principal()

Procedure Programme_principal()
  If OpenWindow(#Fenetre_principale, 0, 0, 820, 300, "Carnet de surveillance du patient", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    TextGadget(#Txt_Praticiens, 10, 10, 400, 30, "Praticiens", #PB_Text_Center)
    TreeGadget(#Tree_praticiens, 10, 40, 400, 250, #PB_ComboBox_Editable)
    AddGadgetItem(#Tree_praticiens, -1, "Infirmière")
    AddGadgetItem(#Tree_praticiens, -1, "Rdv HbA1c", 0, 1)
    AddGadgetItem(#Tree_praticiens, -1, "Podologue")
    AddGadgetItem(#Tree_praticiens, -1, "Soins podologiques", 0, 1)
    AddGadgetItem(#Tree_praticiens, -1, "Néphrologue")
    AddGadgetItem(#Tree_praticiens, -1, "Hypertension artérielle", 0, 1)
    TextGadget(#Txt_Diabete, 410, 10, 400, 30, "Diabète", #PB_Text_Center)
    TreeGadget(#Tree_Diabete, 410, 40, 400, 250, #PB_ComboBox_Editable)
      AddGadgetItem(#Tree_Diabete, -1, "Basales")
      AddGadgetItem(#Tree_Diabete, -1, "Bolus")
      AddGadgetItem(#Tree_Diabete, -1, "Capteurs")
      AddGadgetItem(#Tree_Diabete, -1, "Cibles")
      AddGadgetItem(#Tree_Diabete, -1, "Equivalences glucidiques")
      AddGadgetItem(#Tree_Diabete, -1, "Fruits frais", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Fruits secs", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Féculents", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Portions d'aliments", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Produits sucrés", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Pompe à insuline")
      AddGadgetItem(#Tree_Diabete, -1, "Résultats")
      AddGadgetItem(#Tree_Diabete, -1, "Saisie")
      ;- Déclancheurs
      BindEvent(#PB_Event_CloseWindow, @Quitter())
  EndIf
EndProcedure
Procedure Quitter()
  CloseWindow(#Fenetre_principale)
  End
EndProcedure
Procedure Capteur()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Capteur.exe")
EndProcedure
Procedure Saisie()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Saisies.exe")
EndProcedure
Procedure Pompe()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Pompe a insuline.exe")
EndProcedure
Procedure Resultats()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Resultats.exe")
EndProcedure
Procedure Rdv_HbA1c()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Rendez-vous HbA1c.exe")
EndProcedure
Procedure Podo()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Gestion de soins néphrologiques.exe")
EndProcedure
Procedure HTA()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram("D:\Programmation\Prg Perso\G\Gestion surveillance hypertension\Saisies de prise de tension artérielle.exe")
EndProcedure

;- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
ForEver

Re: Comment déclencher une action avec un TreeGadget ?

Publié : mar. 14/sept./2021 10:52
par blendman
Coucou

Peut-être comme ça (je ne sais pas si c'est ça que tu recherches) :

Code : Tout sélectionner

; Menu principal surveillance patient

EnableExplicit

;- Enumerations
Enumeration Fenetres
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Txt_Praticiens
  #Txt_Diabete
  #Tree_praticiens
  #Tree_Diabete
EndEnumeration

Enumeration Polices
  #Police
EndEnumeration

;- Chargement des polices
LoadFont(#Police, "Arial Nova", 14, #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(#Police))

;- Variables
Global Rep$ = GetPathPart(ProgramFilename()) : SetCurrentDirectory(Rep$)
Global Evenement

;- Déclaration des procédures
Declare Programme_principal()
Declare Quitter()
Declare Capteur()
Declare Saisie()
Declare Pompe()
Declare Resultats()
Declare EventGadgetFenetre()

Programme_principal()

Procedure Programme_principal()
  If OpenWindow(#Fenetre_principale, 0, 0, 820, 300, "Carnet de surveillance du patient", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    TextGadget(#Txt_Praticiens, 10, 10, 400, 30, "Praticiens", #PB_Text_Center)
    TreeGadget(#Tree_praticiens, 10, 40, 400, 250, #PB_ComboBox_Editable)
    AddGadgetItem(#Tree_praticiens, -1, "Infirmière")
    AddGadgetItem(#Tree_praticiens, -1, "Rdv HbA1c", 0, 1)
    AddGadgetItem(#Tree_praticiens, -1, "Podologue")
    AddGadgetItem(#Tree_praticiens, -1, "Soins podologiques", 0, 1)
    AddGadgetItem(#Tree_praticiens, -1, "Néphrologue")
    AddGadgetItem(#Tree_praticiens, -1, "Hypertension artérielle", 0, 1)
    TextGadget(#Txt_Diabete, 410, 10, 400, 30, "Diabète", #PB_Text_Center)
    TreeGadget(#Tree_Diabete, 410, 40, 400, 250, #PB_ComboBox_Editable)
      AddGadgetItem(#Tree_Diabete, -1, "Basales")
      AddGadgetItem(#Tree_Diabete, -1, "Bolus")
      AddGadgetItem(#Tree_Diabete, -1, "Capteurs")
      AddGadgetItem(#Tree_Diabete, -1, "Cibles")
      AddGadgetItem(#Tree_Diabete, -1, "Equivalences glucidiques")
      AddGadgetItem(#Tree_Diabete, -1, "Fruits frais", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Fruits secs", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Féculents", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Portions d'aliments", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Produits sucrés", 0, 1)
      AddGadgetItem(#Tree_Diabete, -1, "Pompe à insuline")
      AddGadgetItem(#Tree_Diabete, -1, "Résultats")
      AddGadgetItem(#Tree_Diabete, -1, "Saisie")
      ;- Déclancheurs
      BindEvent(#PB_Event_CloseWindow, @Quitter())
      BindEvent(#PB_Event_Gadget, @EventGadgetFenetre())
  EndIf
EndProcedure
Procedure Quitter()
  CloseWindow(#Fenetre_principale)
  End
EndProcedure
Procedure Capteur()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Capteur.exe")
EndProcedure
Procedure Saisie()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Saisies.exe")
EndProcedure
Procedure Pompe()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Pompe a insuline.exe")
EndProcedure
Procedure Resultats()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Resultats.exe")
EndProcedure
Procedure Rdv_HbA1c()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Rendez-vous HbA1c.exe")
EndProcedure
Procedure Podo()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram(Rep$ + "Gestion de soins néphrologiques.exe")
EndProcedure
Procedure HTA()
  StickyWindow(#Fenetre_principale, 0)
  RunProgram("D:\Programmation\Prg Perso\G\Gestion surveillance hypertension\Saisies de prise de tension artérielle.exe")
EndProcedure
Procedure EventGadgetFenetre()
  Define pos=-1
  Define nom$= ""
  Select EventGadget()
    Case #Tree_praticiens
      If EventType() = #PB_EventType_LeftClick
      pos = GetGadgetState(#Tree_praticiens)
      nom$ = GetGadgetItemText(#Tree_praticiens,pos)
      Debug "tu as cliqué sur "+nom$
      Debug "tu fais ce que tu veux en fonction du nom par exemple"
    EndIf
    
    Case #Tree_Diabete
      If EventType() = #PB_EventType_LeftClick
      pos = GetGadgetState(#Tree_Diabete)
      nom$ = GetGadgetItemText(#Tree_Diabete,pos)
      Debug "tu as cliqué sur "+nom$
      Debug "tu fais ce que tu veux en fonction du nom par exemple"
    EndIf
    
  EndSelect
  
EndProcedure
;- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
ForEver


Re: Comment déclencher une action avec un TreeGadget ?

Publié : mar. 14/sept./2021 11:57
par Micoute
Enorme et même gigantesque merci blendman, avec ça je vais faire des merveilles.

Re: Comment déclencher une action avec un TreeGadget ?

Publié : mar. 14/sept./2021 13:42
par blendman
je suis ravis d'avoir pu t'aider ;)

Bonne journée

Re: Comment déclencher une action avec un TreeGadget ?

Publié : mer. 15/sept./2021 6:49
par Micoute
Ca ne m'a pas que plu, ça m'a submergé de bonheur, car ça a élargi mon horizon puisque maintenant je sais à quoi il sert ce TreeGadget.