Essai de calendrier intelligent

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Essai de calendrier intelligent

Message par Micoute »

Bonjour à tous,

j'essaie de faire un calendrier intelligent, mais je voudrais que quand je ferme l'éditeur que le programme ne se ferme pas complètement.

Je viens donc solliciter votre aide bienveillante et je vous en remercie par anticipation.

Code : Tout sélectionner

;Calendrier intelligent
XIncludeFile "D:\Programmation\Prg Perso\Include\Date2.pbi" ; Changez le chemin pour qu'il fonctionne
;{ Windows
Enumeration Fenetres
  #Fenetre_principale
  #Fenetre_edition
EndEnumeration
;}
;{ Gadgets
Enumeration Gadgets  
  #Txt_Mois
  #Str_Jour_1
  #Str_Jour_2
  #Str_Jour_3
  #Str_Jour_4
  #Str_Jour_5
  #Str_Jour_6
  #Str_Jour_7
  #Str_Jour_8
  #Str_Jour_9
  #Str_Jour_10
  #Str_Jour_11
  #Str_Jour_12
  #Str_Jour_13
  #Str_Jour_14
  #Str_Jour_15
  #Str_Jour_16
  #Str_Jour_17
  #Str_Jour_18
  #Str_Jour_19
  #Str_Jour_20
  #Str_Jour_21
  #Str_Jour_22
  #Str_Jour_23
  #Str_Jour_24
  #Str_Jour_25
  #Str_Jour_26
  #Str_Jour_27
  #Str_Jour_28
  #Str_Jour_29
  #Str_Jour_30
  #Str_Jour_31
  #Txt_Jour_1
  #Txt_Jour_2
  #Txt_Jour_3
  #Txt_Jour_4
  #Txt_Jour_5
  #Txt_Jour_6
  #Txt_Jour_7
  #Txt_Jour_8
  #Txt_Jour_9
  #Txt_Jour_10
  #Txt_Jour_11
  #Txt_Jour_12
  #Txt_Jour_13
  #Txt_Jour_14
  #Txt_Jour_15
  #Txt_Jour_16
  #Txt_Jour_17
  #Txt_Jour_18
  #Txt_Jour_19
  #Txt_Jour_20
  #Txt_Jour_21
  #Txt_Jour_22
  #Txt_Jour_23
  #Txt_Jour_24
  #Txt_Jour_25
  #Txt_Jour_26
  #Txt_Jour_27
  #Txt_Jour_28
  #Txt_Jour_29
  #Txt_Jour_30
  #Txt_Jour_31  
  #Str_Commentaire
  #Btn_Enregistrer
EndEnumeration
Enumeration Polices
  #PoliceGras
EndEnumeration
Enumeration Fichiers
  #Fichier_cvs
EndEnumeration
LoadFont(#PoliceGras, "Arial", 12, #PB_Font_Bold)
;}
;{ Variables
Global Event
Global Mois = Month(Date())
Global Annee = Year(Date())
Global NbJours = JoursDansMois(Annee, Mois)
Global X, Fichier.s = "rappels.csv"
;}
Procedure SauvegarderRappel(Jour, Mois, Annee, Commentaire.s)
  If OpenFile(#Fichier_cvs, Fichier, #PB_File_Append) ; Ouverture en mode ajout
    FileSeek(#Fichier_cvs, Lof(#Fichier_cvs))
    WriteStringN(#Fichier_cvs, Str(Jour) + "," + Str(Mois) + "," + Str(Annee) + "," + Commentaire)
    CloseFile(#Fichier_cvs)
  EndIf
EndProcedure
Procedure ChargerRappels()
  If OpenFile(#Fichier_cvs, Fichier)
    While Not Eof(#Fichier_cvs)
      Ligne.s = ReadString(#Fichier_cvs)
      Debug "Rappel chargé : " + Ligne ; Tu peux adapter ça pour afficher les rappels dans ton interface
    Wend
    CloseFile(#Fichier_cvs)
  EndIf
EndProcedure
Procedure OuvrirEditeur(Jour)
  OpenWindow(#Fenetre_edition, 200, 200, 400, 200, "Éditeur de Rappel", #PB_Window_SystemMenu)
  
  TextGadget(#PB_Any, 10, 10, 380, 30, "Événement pour le : " + Str(Jour) + "/" + Str(Mois) + "/" + Str(Annee), #PB_Text_Center)
  StringGadget(#Str_Commentaire, 10, 50, 380, 30, "", #SS_CENTERIMAGE)
  ButtonGadget(#Btn_Enregistrer, 150, 100, 100, 30, "Enregistrer")
  
  If IsFile(#Fichier_cvs)
    ChargerRappels()
  EndIf
  
  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_CloseWindow And EventWindow() = #Fenetre_edition
      HideWindow(#Fenetre_edition, #True)  ; Cache au lieu de fermer)
    EndIf  
  Until Event = #PB_Event_CloseWindow
EndProcedure
Procedure Programme_principal()
  If OpenWindow(#Fenetre_principale, 977, 301, 560, 450, "Calendrier intelligent", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    TextGadget(#Txt_Mois, 10, 10, 540, 20, NomMois(Date(Annee, Mois, 1,0,0,0)) + " " + Str(Annee), #PB_Text_Center|#SS_CENTERIMAGE)
    SetGadgetFont(#Txt_Mois, FontID(#PoliceGras))
    TextGadget(#Txt_Jour_1, 20, 40, 70, 40, "1", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_2, 95, 40, 70, 40, "2", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_3, 170, 40, 70, 40, "3", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_4, 245, 40, 70, 40, "4", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_5, 320, 40, 70, 40, "5", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_6, 395, 40, 70, 40, "6", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_7, 470, 40, 70, 40, "7", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_8, 20, 120, 70, 40, "8", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_9, 95, 120, 70, 40, "9", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_10, 170, 120, 70, 40, "10", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_11, 245, 120, 70, 40, "11", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_12, 320, 120, 70, 40, "12", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_13, 395, 120, 70, 40, "13", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_14, 470, 120, 70, 40, "14", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_15, 20, 200, 70, 40, "15", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_16, 95, 200, 70, 40, "16", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_17, 170, 200, 70, 40, "17", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_18, 245, 200, 70, 40, "18", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_19, 320, 200, 70, 40, "19", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_20, 395, 200, 70, 40, "20", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_21, 470, 200, 70, 40, "21", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_22, 20, 270, 70, 40, "22", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_23, 95, 270, 70, 40, "23", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_24, 170, 270, 70, 40, "24", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_25, 245, 270, 70, 40, "25", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_26, 320, 270, 70, 40, "26", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_27, 396, 270, 70, 40, "27", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_28, 470, 270, 70, 40, "28", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_29, 20, 350, 70, 40, "29", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_30, 95, 350, 70, 40, "30", #PB_Text_Center|#SS_CENTERIMAGE)
    TextGadget(#Txt_Jour_31, 170, 350, 70, 40, "31", #PB_Text_Center|#SS_CENTERIMAGE)
    StringGadget(#Str_Jour_1, 20, 70, 70, 40, "")
    StringGadget(#Str_Jour_2, 95, 70, 70, 40, "")
    StringGadget(#Str_Jour_3, 170, 70, 70, 40, "")
    StringGadget(#Str_Jour_4, 245, 70, 70, 40, "")
    StringGadget(#Str_Jour_5, 320, 70, 70, 40, "")
    StringGadget(#Str_Jour_6, 395, 70, 70, 40, "")
    StringGadget(#Str_Jour_7, 470, 70, 70, 40, "")
    StringGadget(#Str_Jour_8, 20, 150, 70, 40, "")
    StringGadget(#Str_Jour_9, 95, 150, 70, 40, "")
    StringGadget(#Str_Jour_10, 170, 150, 70, 40, "")
    StringGadget(#Str_Jour_11, 245, 150, 70, 40, "")
    StringGadget(#Str_Jour_12, 320, 150, 70, 40, "")
    StringGadget(#Str_Jour_13, 395, 150, 70, 40, "")
    StringGadget(#Str_Jour_14, 470, 150, 70, 40, "")
    StringGadget(#Str_Jour_15, 20, 230, 70, 40, "")
    StringGadget(#Str_Jour_16, 95, 230, 70, 40, "")
    StringGadget(#Str_Jour_17, 170, 230, 70, 40, "")
    StringGadget(#Str_Jour_18, 245, 230, 70, 40, "")
    StringGadget(#Str_Jour_19, 320, 230, 70, 40, "")
    StringGadget(#Str_Jour_20, 395, 230, 70, 40, "")
    StringGadget(#Str_Jour_21, 470, 230, 70, 40, "")
    StringGadget(#Str_Jour_22, 20, 310, 70, 40, "")
    StringGadget(#Str_Jour_23, 95, 310, 70, 40, "")
    StringGadget(#Str_Jour_24, 170, 310, 70, 40, "")
    StringGadget(#Str_Jour_25, 245, 310, 70, 40, "")
    StringGadget(#Str_Jour_26, 320, 310, 70, 40, "")
    StringGadget(#Str_Jour_27, 395, 310, 70, 40, "")
    StringGadget(#Str_Jour_28, 470, 310, 70, 40, "")
    StringGadget(#Str_Jour_29, 20, 390, 70, 40, "")
    StringGadget(#Str_Jour_30, 95, 390, 70, 40, "")
    StringGadget(#Str_Jour_31, 170, 390, 70, 40, "")
    For X = #Txt_Jour_1 To #Str_Jour_31
      SetGadgetFont(X, FontID(#PoliceGras))
      Select GetGadgetText(X) 
        Case  "sam", "dim"
          SetGadgetColor(X, #PB_Gadget_FrontColor, $ff)
      EndSelect
    Next x
    Select JoursDansMois(Annee, Mois)
      Case 30
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)
      Case 29
        HideGadget(#Str_Jour_30, #True)
        HideGadget(#Txt_Jour_30, #True)
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)
      Case 28
        HideGadget(#Str_Jour_29, #True)
        HideGadget(#Txt_Jour_29, #True)
        HideGadget(#Str_Jour_30, #True)
        HideGadget(#Txt_Jour_30, #True)
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)  
    EndSelect  
  EndIf
EndProcedure

Programme_principal()

;{- Boucle événementielle
Repeat
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_Gadget
      If EventGadget() = #Btn_Enregistrer
        Debug "Commentaire ajouté : " + GetGadgetText(#Str_Commentaire)
        SauvegarderRappel(EventWindow(), Mois, Annee, GetGadgetText(#Str_Commentaire))
      EndIf
      If EventGadget() >= #Str_Jour_1 And EventGadget() <= #Str_Jour_31
        If IsWindow(#Fenetre_edition)
          HideWindow(#Fenetre_edition, #False)  ; Réaffiche la fenêtre sans la recréer
        Else
          OuvrirEditeur(EventGadget()) 
        EndIf    
      EndIf  
      
    Case #PB_Event_CloseWindow
      If EventWindow() = #Fenetre_principale
        CloseWindow(#Fenetre_principale)
        Break
        End
      EndIf
  EndSelect
Until Event = #PB_Event_CloseWindow
;}
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Mindphazer
Messages : 693
Inscription : mer. 24/août/2005 10:42

Re: Essai de calendrier intelligent

Message par Mindphazer »

J'ai corrigé rapidement... Tu dois gérer les évènements de tes 2 fenêtres au sein de la même boucle Repeat Until...

Code : Tout sélectionner

;Calendrier intelligent
XIncludeFile "D:\Programmation\Prg Perso\Include\Date2.pbi" ; Changez le chemin pour qu'il fonctionne{ Windows
Enumeration Fenetres
  #Fenetre_principale
  #Fenetre_edition
EndEnumeration
;}
;{ Gadgets
Enumeration Gadgets  
  #Txt_Mois
  #Str_Jour_1
  #Str_Jour_2
  #Str_Jour_3
  #Str_Jour_4
  #Str_Jour_5
  #Str_Jour_6
  #Str_Jour_7
  #Str_Jour_8
  #Str_Jour_9
  #Str_Jour_10
  #Str_Jour_11
  #Str_Jour_12
  #Str_Jour_13
  #Str_Jour_14
  #Str_Jour_15
  #Str_Jour_16
  #Str_Jour_17
  #Str_Jour_18
  #Str_Jour_19
  #Str_Jour_20
  #Str_Jour_21
  #Str_Jour_22
  #Str_Jour_23
  #Str_Jour_24
  #Str_Jour_25
  #Str_Jour_26
  #Str_Jour_27
  #Str_Jour_28
  #Str_Jour_29
  #Str_Jour_30
  #Str_Jour_31
  #Txt_Jour_1
  #Txt_Jour_2
  #Txt_Jour_3
  #Txt_Jour_4
  #Txt_Jour_5
  #Txt_Jour_6
  #Txt_Jour_7
  #Txt_Jour_8
  #Txt_Jour_9
  #Txt_Jour_10
  #Txt_Jour_11
  #Txt_Jour_12
  #Txt_Jour_13
  #Txt_Jour_14
  #Txt_Jour_15
  #Txt_Jour_16
  #Txt_Jour_17
  #Txt_Jour_18
  #Txt_Jour_19
  #Txt_Jour_20
  #Txt_Jour_21
  #Txt_Jour_22
  #Txt_Jour_23
  #Txt_Jour_24
  #Txt_Jour_25
  #Txt_Jour_26
  #Txt_Jour_27
  #Txt_Jour_28
  #Txt_Jour_29
  #Txt_Jour_30
  #Txt_Jour_31  
  #Str_Commentaire
  #Btn_Enregistrer
EndEnumeration
Enumeration Polices
  #PoliceGras
EndEnumeration
Enumeration Fichiers
  #Fichier_cvs
EndEnumeration
LoadFont(#PoliceGras, "Arial", 12, #PB_Font_Bold)
;}
;{ Variables
Global Event
Global Mois = Month(Date())
Global Annee = Year(Date())
Global NbJours = JoursDansMois(Annee, Mois)
Global X, Fichier.s = "rappels.csv"
;}
Procedure SauvegarderRappel(Jour, Mois, Annee, Commentaire.s)
  If OpenFile(#Fichier_cvs, Fichier, #PB_File_Append) ; Ouverture en mode ajout
    FileSeek(#Fichier_cvs, Lof(#Fichier_cvs))
    WriteStringN(#Fichier_cvs, Str(Jour) + "," + Str(Mois) + "," + Str(Annee) + "," + Commentaire)
    CloseFile(#Fichier_cvs)
  EndIf
EndProcedure
Procedure ChargerRappels()
  If OpenFile(#Fichier_cvs, Fichier)
    While Not Eof(#Fichier_cvs)
      Ligne.s = ReadString(#Fichier_cvs)
      Debug "Rappel chargé : " + Ligne ; Tu peux adapter ça pour afficher les rappels dans ton interface
    Wend
    CloseFile(#Fichier_cvs)
  EndIf
EndProcedure
Procedure OuvrirEditeur(Jour)
  OpenWindow(#Fenetre_edition, 200, 200, 400, 200, "Éditeur de Rappel", #PB_Window_SystemMenu)
  
  TextGadget(#PB_Any, 10, 10, 380, 30, "Événement pour le : " + Str(Jour) + "/" + Str(Mois) + "/" + Str(Annee), #PB_Text_Center)
  StringGadget(#Str_Commentaire, 10, 50, 380, 30, "")
  ButtonGadget(#Btn_Enregistrer, 150, 100, 100, 30, "Enregistrer")
  
  If IsFile(#Fichier_cvs)
    ChargerRappels()
  EndIf
  
  ;Repeat
  ;  Event = WaitWindowEvent()
  ;  
  ;  If Event = #PB_Event_CloseWindow And EventWindow() = #Fenetre_edition
  ;    HideWindow(#Fenetre_edition, #True)  ; Cache au lieu de fermer)
  ;  EndIf  
  ;Until Event = #PB_Event_CloseWindow
EndProcedure
Procedure Programme_principal()
  If OpenWindow(#Fenetre_principale, 977, 301, 560, 450, "Calendrier intelligent", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    TextGadget(#Txt_Mois, 10, 10, 540, 20, NomMois(Date(Annee, Mois, 1,0,0,0)) + " " + Str(Annee), #PB_Text_Center)
    SetGadgetFont(#Txt_Mois, FontID(#PoliceGras))
    TextGadget(#Txt_Jour_1, 20, 40, 70, 40, "1", #PB_Text_Center)
    TextGadget(#Txt_Jour_2, 95, 40, 70, 40, "2", #PB_Text_Center)
    TextGadget(#Txt_Jour_3, 170, 40, 70, 40, "3", #PB_Text_Center)
    TextGadget(#Txt_Jour_4, 245, 40, 70, 40, "4", #PB_Text_Center)
    TextGadget(#Txt_Jour_5, 320, 40, 70, 40, "5", #PB_Text_Center)
    TextGadget(#Txt_Jour_6, 395, 40, 70, 40, "6", #PB_Text_Center)
    TextGadget(#Txt_Jour_7, 470, 40, 70, 40, "7", #PB_Text_Center)
    TextGadget(#Txt_Jour_8, 20, 120, 70, 40, "8", #PB_Text_Center)
    TextGadget(#Txt_Jour_9, 95, 120, 70, 40, "9", #PB_Text_Center)
    TextGadget(#Txt_Jour_10, 170, 120, 70, 40, "10", #PB_Text_Center)
    TextGadget(#Txt_Jour_11, 245, 120, 70, 40, "11", #PB_Text_Center)
    TextGadget(#Txt_Jour_12, 320, 120, 70, 40, "12", #PB_Text_Center)
    TextGadget(#Txt_Jour_13, 395, 120, 70, 40, "13", #PB_Text_Center)
    TextGadget(#Txt_Jour_14, 470, 120, 70, 40, "14", #PB_Text_Center)
    TextGadget(#Txt_Jour_15, 20, 200, 70, 40, "15", #PB_Text_Center)
    TextGadget(#Txt_Jour_16, 95, 200, 70, 40, "16", #PB_Text_Center)
    TextGadget(#Txt_Jour_17, 170, 200, 70, 40, "17", #PB_Text_Center)
    TextGadget(#Txt_Jour_18, 245, 200, 70, 40, "18", #PB_Text_Center)
    TextGadget(#Txt_Jour_19, 320, 200, 70, 40, "19", #PB_Text_Center)
    TextGadget(#Txt_Jour_20, 395, 200, 70, 40, "20", #PB_Text_Center)
    TextGadget(#Txt_Jour_21, 470, 200, 70, 40, "21", #PB_Text_Center)
    TextGadget(#Txt_Jour_22, 20, 270, 70, 40, "22", #PB_Text_Center)
    TextGadget(#Txt_Jour_23, 95, 270, 70, 40, "23", #PB_Text_Center)
    TextGadget(#Txt_Jour_24, 170, 270, 70, 40, "24", #PB_Text_Center)
    TextGadget(#Txt_Jour_25, 245, 270, 70, 40, "25", #PB_Text_Center)
    TextGadget(#Txt_Jour_26, 320, 270, 70, 40, "26", #PB_Text_Center)
    TextGadget(#Txt_Jour_27, 396, 270, 70, 40, "27", #PB_Text_Center)
    TextGadget(#Txt_Jour_28, 470, 270, 70, 40, "28", #PB_Text_Center)
    TextGadget(#Txt_Jour_29, 20, 350, 70, 40, "29", #PB_Text_Center)
    TextGadget(#Txt_Jour_30, 95, 350, 70, 40, "30", #PB_Text_Center)
    TextGadget(#Txt_Jour_31, 170, 350, 70, 40, "31", #PB_Text_Center)
    StringGadget(#Str_Jour_1, 20, 70, 70, 40, "")
    StringGadget(#Str_Jour_2, 95, 70, 70, 40, "")
    StringGadget(#Str_Jour_3, 170, 70, 70, 40, "")
    StringGadget(#Str_Jour_4, 245, 70, 70, 40, "")
    StringGadget(#Str_Jour_5, 320, 70, 70, 40, "")
    StringGadget(#Str_Jour_6, 395, 70, 70, 40, "")
    StringGadget(#Str_Jour_7, 470, 70, 70, 40, "")
    StringGadget(#Str_Jour_8, 20, 150, 70, 40, "")
    StringGadget(#Str_Jour_9, 95, 150, 70, 40, "")
    StringGadget(#Str_Jour_10, 170, 150, 70, 40, "")
    StringGadget(#Str_Jour_11, 245, 150, 70, 40, "")
    StringGadget(#Str_Jour_12, 320, 150, 70, 40, "")
    StringGadget(#Str_Jour_13, 395, 150, 70, 40, "")
    StringGadget(#Str_Jour_14, 470, 150, 70, 40, "")
    StringGadget(#Str_Jour_15, 20, 230, 70, 40, "")
    StringGadget(#Str_Jour_16, 95, 230, 70, 40, "")
    StringGadget(#Str_Jour_17, 170, 230, 70, 40, "")
    StringGadget(#Str_Jour_18, 245, 230, 70, 40, "")
    StringGadget(#Str_Jour_19, 320, 230, 70, 40, "")
    StringGadget(#Str_Jour_20, 395, 230, 70, 40, "")
    StringGadget(#Str_Jour_21, 470, 230, 70, 40, "")
    StringGadget(#Str_Jour_22, 20, 310, 70, 40, "")
    StringGadget(#Str_Jour_23, 95, 310, 70, 40, "")
    StringGadget(#Str_Jour_24, 170, 310, 70, 40, "")
    StringGadget(#Str_Jour_25, 245, 310, 70, 40, "")
    StringGadget(#Str_Jour_26, 320, 310, 70, 40, "")
    StringGadget(#Str_Jour_27, 395, 310, 70, 40, "")
    StringGadget(#Str_Jour_28, 470, 310, 70, 40, "")
    StringGadget(#Str_Jour_29, 20, 390, 70, 40, "")
    StringGadget(#Str_Jour_30, 95, 390, 70, 40, "")
    StringGadget(#Str_Jour_31, 170, 390, 70, 40, "")
    For X = #Txt_Jour_1 To #Str_Jour_31
      SetGadgetFont(X, FontID(#PoliceGras))
      Select GetGadgetText(X) 
        Case  "sam", "dim"
          SetGadgetColor(X, #PB_Gadget_FrontColor, $ff)
      EndSelect
    Next x
    Select JoursDansMois(Annee, Mois)
      Case 30
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)
      Case 29
        HideGadget(#Str_Jour_30, #True)
        HideGadget(#Txt_Jour_30, #True)
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)
      Case 28
        HideGadget(#Str_Jour_29, #True)
        HideGadget(#Txt_Jour_29, #True)
        HideGadget(#Str_Jour_30, #True)
        HideGadget(#Txt_Jour_30, #True)
        HideGadget(#Str_Jour_31, #True)
        HideGadget(#Txt_Jour_31, #True)  
    EndSelect  
  EndIf
EndProcedure

Programme_principal()

;{- Boucle événementielle
Repeat
  Event = WaitWindowEvent()
  Select EventWindow()
    Case #Fenetre_principale
      Select Event
        Case #PB_Event_Gadget
        If EventGadget() >= #Str_Jour_1 And EventGadget() <= #Str_Jour_31
          If IsWindow(#Fenetre_edition)
            HideWindow(#Fenetre_edition, #False)  ; Réaffiche la fenêtre sans la recréer
          Else
            OuvrirEditeur(EventGadget()) 
          EndIf    
        EndIf  
        Case #PB_Event_CloseWindow
        If EventWindow() = #Fenetre_principale
          CloseWindow(#Fenetre_principale)
          Break
          End
        EndIf
      EndSelect
    Case #Fenetre_edition
      If Event = #PB_Event_CloseWindow
        HideWindow(#Fenetre_edition, #True)  ; Cache au lieu de fermer)
      ElseIf Event = #PB_Event_Gadget
      If EventGadget() = #Btn_Enregistrer
        Debug "Commentaire ajouté : " + GetGadgetText(#Str_Commentaire)
        SauvegarderRappel(EventWindow(), Mois, Annee, GetGadgetText(#Str_Commentaire))
      EndIf
    EndIf
  EndSelect
ForEver
;}
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Répondre