Pouvez-vous m'aider, car quand je clique sur un StringGadget() quelconque, il y a étrange phénomène qui se produit, car apparemment l'action se répète indéfiniment.
Code : Tout sélectionner
; Calendrier pharmaceutique simplifié
; Conçu et créé le 18 février 2025
; avec PB 6.20 (x64)
Enumeration Fenetres
#Fenetre_Principale
#Fenetre_Editeur
EndEnumeration
Enumeration Gadgets
#Edt
; Énumération des StringGadgets de 1 à 28
#Str_1:#Str_2:#Str_3:#Str_4:#Str_5:#Str_6:#Str_7
#Str_8:#Str_9:#Str_10:#Str_11:#Str_12:#Str_13:#Str_14
#Str_15:#Str_16:#Str_17:#Str_18:#Str_19:#Str_20:#Str_21
#Str_22:#Str_23:#Str_24:#Str_25:#Str_26:#Str_27:#Str_28
; Énumération des TextGadgets de 1 à 28
#Txt_1:#Txt_2:#Txt_3:#Txt_4:#Txt_5:#Txt_6:#Txt_7
#Txt_8:#Txt_9:#Txt_10:#Txt_11:#Txt_12:#Txt_13:#Txt_14
#Txt_15:#Txt_16:#Txt_17:#Txt_18:#Txt_19:#Txt_20:#Txt_21
#Txt_22:#Txt_23:#Txt_24:#Txt_25:#Txt_26:#Txt_27:#Txt_28
#Txt_Info:#Txt_Indice:#Btn_Enregistrer:#Btn_Sauvegarder_Edt
EndEnumeration
Global Dim Medications$(28), Evenement, medications$, jour, positionX, positionY
Procedure Fenetre_Editeur(index, jour)
If OpenWindow(#Fenetre_Editeur, 100, 100, 400, 310, "Éditeur de Médicaments", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(#Txt_Indice, 10, 10, 380, 20, "Jour " + Str(jour))
EditorGadget(#Edt, 10, 40, 380, 200)
SetGadgetText(#Edt, Medications$(jour))
ButtonGadget(#Btn_Sauvegarder_Edt, 50, 260, 100, 30, "Sauvegarder")
Debug "Fenêtre de l'éditeur ouverte"
EndIf
EndProcedure
Procedure Programme_principal()
If OpenWindow(#Fenetre_Principale, 0, 0, 350, 910, "Calendrier Pharmaceutique (28 jours)", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
TextGadget(#Txt_Info, 10, 10, 780, 20, "Notez les médicaments prescrits pour chaque jour (28 jours)")
positionX = 40
positionY = 40
For jour = 1 To 28
TextGadget(#Txt_1 + (jour - 1), positionX, positionY, 70, 20, "Jour " + Str(jour))
StringGadget(#Str_1 + (jour - 1), positionX + 80, positionY, 200, 20, "")
positionY + 30
Next jour
ButtonGadget(#Btn_Enregistrer, 130, 880, 100, 25, "Enregistrer")
;{ Boucle événementielle
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_Enregistrer
For jour = 1 To 28
Medications$ = GetGadgetText(#Str_1 + jour)
Debug "Jour " + Str(jour) + ": " + Medications$
Next jour
Case #Btn_Sauvegarder_Edt
medications$ = GetGadgetText(#Edt)
Medications$(jour) = medications$
SetGadgetText(index, medications$)
Debug "Sauvegarde effectuée"
Case #Str_1 To #Str_28
jour = EventGadget()
Debug "StringGadget cliqué - Jour: " + Str(jour)
Fenetre_Editeur(EventGadget(), jour)
EndSelect
Case #PB_Event_CloseWindow
If EventWindow() = #Fenetre_Principale
Debug "EventWindow() = Fenêtre principale"
CloseWindow(#Fenetre_Principale)
End
ElseIf EventWindow() = #Fenetre_Editeur
Debug "EventWindow() = Fenêtre Éditeur"
CloseWindow(#Fenetre_Editeur)
EndIf
EndSelect
Until Evenement = #PB_Event_CloseWindow
;}
EndIf
EndProcedure
Programme_principal()