Dans ce cas il va manquer le fichier principal Calendrier défilant.pb, le voici :
Code : Tout sélectionner
IncludeFile #PB_Compiler_FilePath+"Fonctions_Date.pbi"
IncludeFile #PB_Compiler_FilePath+"Phases de la lune.pb"
IncludeFile #PB_Compiler_FilePath+"Fêtes mobiles et fixes.pb"
;
InitSprite()
InitKeyboard()
InitMouse()
;
Enumeration
;
; fenetre
;
#Fenetre_principale
;
; gadgets
;
#Bouton_Quitter
#Police
#Police2
#Police_Bouton_Quitter
;
; actions
;
#f_sortie
#f_aucune
;
; images
;
;
EndEnumeration
;
#Faux = 0
#Vrai = 1
If LoadFont(#Police, "Calibri", 12, #PB_Font_Bold)
Global Calibri_12.i = FontID(#Police)
EndIf
If LoadFont(#Police_Bouton_Quitter, "Calibri", 12, #PB_Font_Bold)
Global IdPolice_Bouton_Quitter.i = FontID(#Police_Bouton_Quitter)
EndIf
Global Dim Mois$(12)
Global Phase.i
Declare Affiche(Annee)
;-
Global Quitter.b = #Faux, Fete_des_meres.i, Fete_des_peres.i, Fete_des_grand_meres.i, Fete_des_grand_peres.i, Heure_d_ete.i, Heure_d_hiver.i
Global.i CoulFond = $C0FFFF, CoulTexte, MoisEnCours = Month(Date()), Annee = Year(Date())
Global.s Masque = "%dddd %dd", Masque2 = "%dddd %dd %mmmm %yyyy"
Global.i X = 2 , Y = 60, i, Num_Mois, XX = x, YY = y, EspaceMois
ExamineDesktops()
Global.i Largeur_ecran = DesktopWidth(0)
Global.i Hauteur_ecran = DesktopHeight(0)
Global.i Prof_ecran = DesktopDepth(0)
EspaceMois = Largeur_ecran / 6
;
; ouvrir une fenêtre maximisée la même taille que le bureau et sans bordure
;
Global.i F_principale_h = OpenWindow(#Fenetre_principale,0,0,Largeur_ecran,Hauteur_ecran,"Sprite Engine",#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Maximize)
;
; ouvrir un écran de la même taille que la fenêtre (c'est à dire couvrant l'ensemble)
;
OpenWindowedScreen(F_principale_h.i,0,0,Largeur_ecran,Hauteur_ecran,0,0,0,#PB_Screen_SmartSynchronization)
SetClassLongPtr_(ScreenID(),#GCL_HCURSOR, LoadCursor_(0, #IDC_HAND)) ; SetClassLongPtr_ = Compatibilité 32-64 bits
ShowCursor_(#True) ; montrer le curseur
ClearScreen($FF89C0)
StartDrawing(ScreenOutput())
DrawingFont(Calibri_12)
DrawingMode(#PB_2DDrawing_AlphaChannel)
FrontColor($000000) : BackColor($FFC0C0)
;-
Declare AfficheSaison(CoulFond)
Procedure TraitVertical(X, Y, Hauteur, Epaisseur=1, Couleur=0) ; Trace un trait vertical avec épaisseur et couleur choisies
Protected i = 0
If Epaisseur >0
While i < Epaisseur
Line(x+i,y,1,Hauteur,Couleur)
i+1
Wend
Else
Line(x,y,1,Hauteur,Couleur)
EndIf
EndProcedure
Procedure TraitHorizontal(X, Y, Longueur, Epaisseur=1, Couleur=0) ; Trace un trait horizontal avec épaisseur et couleur choisies
Protected i = 0
If Epaisseur > 0
While i < Epaisseur
Line(x,y+i,Longueur,1,Couleur)
i+1
Wend
Else
Line(x,y,Longueur,1,Couleur)
EndIf
EndProcedure
Procedure Cadre(x, y, Largeur, Hauteur, Epaisseur=1, CouleurCadre=0); Trace un cadre simple de la couleur choisie
;Ligne supérieure
TraitHorizontal(x,y,Largeur, Epaisseur, CouleurCadre)
;Ligne gauche
TraitVertical(x,y,Hauteur+Epaisseur,Epaisseur,CouleurCadre)
;Ligne droite
TraitVertical(x+Largeur,y,Hauteur+Epaisseur,Epaisseur,CouleurCadre)
;Ligne inférieure
TraitHorizontal(x,y+Hauteur,Largeur,Epaisseur,CouleurCadre)
EndProcedure
Procedure CadreColore(x, y, Largeur, Hauteur, Epaisseur=1, CouleurCadre=0, CouleurFond=0); Trace un cadre plein avec la couleur choisie
Cadre(x, y, Largeur, Hauteur, Epaisseur, CouleurCadre)
;Remplir le cadre
FillArea(x+Largeur/2,y+Hauteur/2,CouleurCadre,CouleurFond)
EndProcedure
Macro Is(expression)
((expression) Or 0)
EndMacro
Macro Si(expression,Vrai,Faux)
If Is(expression)
Vrai
Else
Faux
EndIf
EndMacro
Procedure CentrerTexte(Fenetre.I, y.I, Texte.s, Couleur) ; Centre le texte dans la fenêtre à la hauteur et à la couleur choisies.
DrawText((DesktopWidth(Fenetre)-TextWidth(Texte))/2, y, Texte, Couleur)
EndProcedure
Procedure Calculer()
CadreColore(XX, YY - 20, EspaceMois * 6, 670, 1, $000000, $C0FFFF) ; Cadre du calendrier
; Initialiser les noms de mois
For i = 1 To 12
Mois$(i) = StringField(NomMois.s,i,"|")
Mois$(i) = UCase(Left(Mois$(i),1))+Mid(Mois$(i),2)
Next i
;Afficher les mois du mois courant à la fin de l'année courante
z = 0
Num_Mois = MoisEnCours
While Num_Mois < 13
Affiche(Annee)
Num_Mois+1
If Num_Mois = 13
Num_Mois = 1
Annee + 1
EndIf
z + 1
If z < 5 And Num_Mois > 12
Num_Mois = 1
Annee + 1
While Num_Mois < 13 And z < 5
Affiche(Annee)
Num_Mois + 1
z + 1
Wend
EndIf
If z > 5 ; si 6 mois sont affichés c'est suffisant
Break
EndIf
Wend
XX = x
For i = 1 To 5
TraitVertical(((i * EspaceMois)+ XX),YY-20, 670,2, $000000) ; Traits entre chaque mois
Next
TraitHorizontal(XX, YY, EspaceMois * 6, 2, $000000) ; Trait sous les mois
DrawingFont(Calibri_12)
;- Hiver
If Mois$(MoisEnCours) = "Janvier"
FillArea(XX + 20 , 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 , 41, Mois$(1), $000000, $EEEEEE)
FillArea(XX + 20 + EspaceMois, 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 + EspaceMois, 41, Mois$(2), $000000, $EEEEEE)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(3), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(4), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*4) , 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 + (EspaceMois*4) , 41, Mois$(5), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(6), $000000, $00F0F0)
EndIf
If Mois$(MoisEnCours) = "Février"
FillArea(XX + 20 , 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 , 41, Mois$(2), $000000, $EEEEEE)
FillArea(XX + 20 + EspaceMois, 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 + EspaceMois, 41, Mois$(3), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20 + (EspaceMois*2), 41, Mois$(4), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*3) , 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 + (EspaceMois*3) , 41, Mois$(5), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(6), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 + (EspaceMois*5), 41, Mois$(7), $000000, $00F0F0)
EndIf
;- Printemps
If Mois$(MoisEnCours) = "Mars"
FillArea(XX + 20 , 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 , 41, Mois$(3), $000000, $72D772)
FillArea(XX + 20 + EspaceMois, 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20 + EspaceMois, 41, Mois$(4), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*2) , 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 + (EspaceMois*2) , 41, Mois$(5), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(6), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 + (EspaceMois*4), 41, Mois$(7), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 + (EspaceMois*5), 41, Mois$(8), $000000, $00F0F0)
EndIf
If Mois$(MoisEnCours) = "Avril"
FillArea(XX + 20, 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20, 41, Mois$(4), $000000, $72D772)
FillArea(XX + 20 + EspaceMois , 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 + EspaceMois , 41, Mois$(5), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(6), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 + (EspaceMois*3), 41, Mois$(7), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 + (EspaceMois*4), 41, Mois$(8), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 + (EspaceMois*5), 41, Mois$(9), $000000, $81C5FE)
EndIf
If Mois$(MoisEnCours) = "Mai"
FillArea(XX + 20 , 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 , 41, Mois$(5), $000000, $72D772)
FillArea(XX + 20 + EspaceMois, 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 +(EspaceMois), 41, Mois$(6), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 + (EspaceMois*2), 41, Mois$(7), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 + (EspaceMois*3), 41, Mois$(8), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 + (EspaceMois*4), 41, Mois$(9), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(10), $000000, $81C5FE)
EndIf
;- été
If Mois$(MoisEnCours) = "Juin"
FillArea(XX + 20 , 50, $000000, $00F0F0) ; été 1
DrawText(XX + 20 , 41, Mois$(6), $000000, $00F0F0)
FillArea(XX + 20 +EspaceMois, 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 +EspaceMois, 41, Mois$(7), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 + (EspaceMois*2), 41, Mois$(8), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 + (EspaceMois*3), 41, Mois$(9), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(10), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $81C5FE) ; automne 3
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(11), $000000, $81C5FE)
EndIf
If Mois$(MoisEnCours) = "Juillet"
FillArea(XX + 20 , 50, $000000, $00F0F0) ; été 2
DrawText(XX + 20 , 41, Mois$(7), $000000, $00F0F0)
FillArea(XX + 20 + EspaceMois, 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 + EspaceMois, 41, Mois$(8), $000000, $00F0F0)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 + (EspaceMois*2), 41, Mois$(9), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(10), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $81C5FE) ; automne 3
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(11), $000000, $81C5FE)
FillArea(XX + 20 +(EspaceMois*5), 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(12), $000000, $EEEEEE)
EndIf
If Mois$(MoisEnCours) = "Août"
FillArea(XX + 20 , 50, $000000, $00F0F0) ; été 3
DrawText(XX + 20 , 41, Mois$(8), $000000, $00F0F0)
FillArea(XX + 20 + EspaceMois, 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 + EspaceMois, 41, Mois$(9), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(10), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $81C5FE) ; automne 3
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(11), $000000, $81C5FE)
FillArea(XX + 20 +(EspaceMois*4), 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(12), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*5), 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(1), $000000, $EEEEEE)
EndIf
;- Automne
If Mois$(MoisEnCours) = "Septembre"
FillArea(XX + 20 , 50, $000000, $81C5FE) ; automne 1
DrawText(XX + 20 , 41, Mois$(9), $000000, $81C5FE)
FillArea(XX + 20 + EspaceMois, 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 +(EspaceMois), 41, Mois$(10), $000000, $81C5FE)
FillArea(XX + 20 + (EspaceMois*2), 50, $000000, $81C5FE) ; automne 3
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(11), $000000, $81C5FE)
FillArea(XX + 20 +(EspaceMois*3), 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(12), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*4), 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(1), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*5), 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(2), $000000, $EEEEEE)
EndIf
If Mois$(MoisEnCours) = "Octobre"
FillArea(XX + 20, 50, $000000, $81C5FE) ; automne 2
DrawText(XX + 20 , 41, Mois$(10), $000000, $81C5FE)
FillArea(XX + 20 + EspaceMois, 50, $000000, $81C5FE)
DrawText(XX + 20 +(EspaceMois), 41, Mois$(11), $000000, $81C5FE)
FillArea(XX + 20 +(EspaceMois*2), 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(12), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*3), 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(1), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*4), 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(2), $000000, $EEEEEE)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(3), $000000, $72D772)
EndIf
If Mois$(MoisEnCours) = "Novembre"
FillArea(XX + 20, 50, $000000, $81C5FE) ; automne 3
DrawText(XX + 20, 41, Mois$(11), $000000, $81C5FE)
FillArea(XX + 20 +(EspaceMois), 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 +(EspaceMois), 41, Mois$(12), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*2), 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(1), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*3), 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(2), $000000, $EEEEEE)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(3), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(4), $000000, $72D772)
EndIf
If Mois$(MoisEnCours) = "Décembre"
FillArea(XX + 20 , 50, $000000, $EEEEEE) ; hiver 1
DrawText(XX + 20 , 41, Mois$(12), $000000, $EEEEEE)
DrawText(XX + 20 + EspaceMois, 41, Mois$(12), $000000, $EEEEEE)
FillArea(XX + 20 + EspaceMois, 50, $000000, $EEEEEE) ; hiver 2
DrawText(XX + 20 + EspaceMois, 41, Mois$(1), $000000, $EEEEEE)
FillArea(XX + 20 +(EspaceMois*2), 50, $000000, $EEEEEE) ; hiver 3
DrawText(XX + 20 +(EspaceMois*2), 41, Mois$(2), $000000, $EEEEEE)
FillArea(XX + 20 + (EspaceMois*3), 50, $000000, $72D772) ; printemps 1
DrawText(XX + 20 +(EspaceMois*3), 41, Mois$(3), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*4), 50, $000000, $72D772) ; printemps 2
DrawText(XX + 20 +(EspaceMois*4), 41, Mois$(4), $000000, $72D772)
FillArea(XX + 20 + (EspaceMois*5), 50, $000000, $72D772) ; printemps 3
DrawText(XX + 20 +(EspaceMois*5), 41, Mois$(5), $000000, $72D772)
EndIf
;- Légende
DrawingFont(Calibri_12)
BackColor(Point(0,0))
TraitHorizontal(10, 730, 50, 20, $72D772) : DrawText(70, 730, "Printemps",$000000) : Cadre(10, 730, 50, 20, 1, $0)
TraitHorizontal(310, 730, 50, 20, $00F0F0) : DrawText(370, 730, "Eté",$000000) : Cadre(310, 730, 50, 20, 1, $0)
TraitHorizontal(610, 730, 50, 20, $81C5FB) : DrawText(670, 730, "Automne",$000000) : Cadre(610, 730, 50, 20, 1, $0)
TraitHorizontal(910, 730, 50, 20, $EEEEEE) : DrawText(970, 730, "Hiver",$000000) : Cadre(910, 730, 50, 20, 1, $0)
;...
EndProcedure
;
Procedure Affiche(Annee)
For i = 1 To Jours_dans_le_mois(Annee,Num_Mois)
Global DateJour.s =ChaineDate(Masque,Date(Annee,Num_Mois,i,0,0,0))
Global JourSemaine.s = StringField(DateJour, 1, " ")
Global JourSemaine = UCase(Left(JourSemaine,1))+Right(JourSemaine,Len(JourSemaine)-1)
Global JourMois.s = StringField(DateJour, 2, " "), JourMois2.s
Global DizJourMois = Val(Left(JourMois,1))
Global UnJourMois = Val(Right(JourMois,1))
Phase = ObtenirPhaseLune(Annee, Num_Mois, Val(JourMois))
Select Phase
Case 0
Texte$ = "NL"
Case 1
Texte$ = "PQ"
Case 2
Texte$ = "PL"
Case 3
Texte$ = "DQ"
EndSelect
FrontColor(0)
BackColor(CoulFond)
Si(Phase <> -1, DrawText(XX + 50, YY, Texte$), DrawText(XX + 50, YY, "")) ; Afficher la phase de la lune
Texte$ = ""
Select JourSemaine ;- sélection Jds
Case "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
FrontColor($00)
BackColor(CoulFond)
DrawText(XX + 2, YY, LSet(JourSemaine,2," ")+" ") ; Jours de semaine en noir
If UnJourMois > 0 And DizJourMois
DrawText(XX + 26, YY, Str(DizJourMois)) ; dizaine du mois
DrawText(XX + 26 + TextWidth("0"), YY, Str(UnJourMois)) ; Jour du mois
ElseIf DizJourMois < 1
DrawText(XX + 26 + TextWidth("0"), YY, Str(UnJourMois)) ; dizaine du mois
ElseIf DizJourMois > 0 And UnJourMois = 0 ; 10 20 ou 30
DrawText(XX + 26, YY, Str(DizJourMois)) ; dizaine du mois
DrawText(XX + 26 + TextWidth("0"), YY, "0") ; Jour du mois
EndIf
;- fêtes mobiles semaine
CoulTexte = $FF
Select JourMois
Case StringField(ChaineDate(Masque2, Mardi_Gras(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Mardi_Gras(Annee)), 3, " ")):Texte$ = "Mardi gras":EndIf
Case StringField(ChaineDate(Masque2, Cendres(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Cendres(Annee)), 3, " ")):Texte$ = "Mercredi des Cendres":EndIf
Case StringField(ChaineDate(Masque2, Jeudi_Saint(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Jeudi_Saint(Annee)), 3, " ")):Texte$ = "Jeudi Saint":EndIf
Case StringField(ChaineDate(Masque2, Vendredi_Saint(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Vendredi_Saint(Annee)), 3, " ")):Texte$ = "Vendredi Saint":EndIf
Case StringField(ChaineDate(Masque2, PaquesLundi(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, PaquesLundi(Annee)), 3, " ")):Texte$ = "Lundi de Pâques":EndIf
Case StringField(ChaineDate(Masque2, Ascension(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Ascension(Annee)), 3, " ")):Texte$ = "Ascension":EndIf
Case StringField(ChaineDate(Masque2, PentecoteLundi(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, PentecoteLundi(Annee)), 3, " ")):Texte$ = "Lundi de Pentecôte":EndIf
EndSelect
DrawText(XX + 70, YY, Texte$, CoulTexte)
Texte$ = ""
;- anniv semaine
If JourMois = "24" And Num_Mois = 2 : DrawText(XX + 70, YY, "Anniv Maëlys " + Str(Annee-2011)) : EndIf
If JourMois = "17" And Num_Mois = 3 : DrawText(XX + 70, YY, "Anniv Sonia "+Str(Annee-1990)) : EndIf
If JourMois = "06" And Num_Mois = 4 : DrawText(XX + 70, YY, "Anniv Pierre "+Str(Annee-2011)) : EndIf
If JourMois = "19" And Num_Mois = 6 : DrawText(XX + 70, YY, "Anniv papa "+Str(Annee-1950)) : EndIf
If JourMois = "21" And Num_Mois = 8 : DrawText(XX + 70, YY, "Anniv maman "+Str(Annee-1956)) : EndIf
If JourMois = "24" And Num_Mois = 8 : DrawText(XX + 70, YY, "Anniv Sarah "+Str(Annee-1986)) : EndIf
If JourMois = "10" And Num_Mois = 10 : DrawText(XX + 70, YY, "Anniv mimi "+Str(Annee-1983)) :EndIf
If JourMois = "30" And Num_Mois = 11 : DrawText(XX + 70, YY, "Anniv Jérôme "+Str(Annee-1987)) : EndIf
If JourMois = "15" And Num_Mois = 11 : DrawText(XX + 70, YY, "Anniv Amélie "+Str(Annee-1990)) : EndIf
Case "Dimanche" ;- sélection dimanche
FrontColor($FF)
BackColor(CoulFond)
DrawText(XX + 2, YY, LSet(JourSemaine,2," ")+" ") ; dimanche en rouge
If UnJourMois > 0 And DizJourMois
DrawText(XX + 26, YY, Str(DizJourMois)) ; dizaine du MoisEnCours
DrawText(XX + 26 + TextWidth("0"), YY, Str(UnJourMois)) ; Jour du MoisEnCours
ElseIf DizJourMois < 1
DrawText(XX + 26 + TextWidth("0"), YY, Str(UnJourMois)) ; dizaine du MoisEnCours
ElseIf DizJourMois > 0 And UnJourMois = 0 ; 10 20 ou 30
DrawText(XX + 26, YY, Str(DizJourMois)) ; dizaine du mois
DrawText(XX + 26 + TextWidth("0"), YY, "0") ; Jour du mois
EndIf
;- fêtes mobile dimanche
Select JourMois
Case StringField(ChaineDate(Masque2, Paques(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Paques(Annee)), 3, " ")):Texte$ = "Pâques":EndIf
Case StringField(ChaineDate(Masque2, Fete_des_grand_meres(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Fete_des_grand_meres(Annee)), 3, " ")):Texte$ = "Fête des Grand-Mères":EndIf
Case StringField(ChaineDate(Masque2, Passion(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Passion(Annee)), 3, " ")):Texte$ = "Passion":EndIf
Case StringField(ChaineDate(Masque2, Pentecote(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Pentecote(Annee)), 3, " ")):Texte$ = "Pentecôte":EndIf
Case StringField(ChaineDate(Masque2, FeteDesMeres(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, FeteDesMeres(Annee)), 3, " ")):Texte$ = "Fête des Mères":EndIf
Case StringField(ChaineDate(Masque2, Fete_des_peres(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Fete_des_peres(Annee)), 3, " ")):Texte$ = "Fête des Pères":EndIf
Case StringField(ChaineDate(Masque2, Fete_des_grand_peres(Annee)), 2 , " ")
If UCase(Mois$(Num_Mois)) = UCase(StringField(ChaineDate(Masque2, Fete_des_grand_peres(Annee)), 3, " ")):Texte$ = "Fêtes des Grand-Pères":EndIf
EndSelect
;- décalage horaire
If JourMois = StringField(ChaineDate(Masque2, Heure_d_ete(Annee)), 2 , " ") And Num_Mois = 3 : Texte$ = "Heure d'été +1" : EndIf
If JourMois = StringField(ChaineDate(Masque2, Heure_d_hiver(Annee)), 2 , " ") And Num_Mois = 10 : Texte$ = "Heure d'hiver -1" : EndIf
If JourMois = StringField(ChaineDate(Masque2, Rameaux(Annee)), 2 , " ") And Num_Mois = 3 : Texte$ = "Rameaux"
ElseIf JourMois = StringField(ChaineDate(Masque2, Rameaux(Annee)), 2 , " ") And Num_Mois = 4 : Texte$ = "Rameaux"
EndIf
DrawText(XX + 70, YY, Texte$, CoulTexte)
;- anniv dimanche
If JourMois = "24" And Num_Mois = 2 : DrawText(XX + 70, YY, "Anniv Maëlys " + Str(Annee-2011)) : EndIf
If JourMois = "17" And Num_Mois = 3 : DrawText(XX + 70, YY, "Anniv Sonia "+Str(Annee-1990)) : EndIf
If JourMois = "06" And Num_Mois = 4 : DrawText(XX + 70, YY, "Anniv Pierre "+Str(Annee-2011)) : EndIf
If JourMois = "19" And Num_Mois = 6 : DrawText(XX + 70, YY, "Anniv papa "+Str(Annee-1950)) : EndIf
If JourMois = "21" And Num_Mois = 8 : DrawText(XX + 70, YY, "Anniv maman "+Str(Annee-1956)) : EndIf
If JourMois = "24" And Num_Mois = 8 : DrawText(XX + 70, YY, "Anniv Sarah "+Str(Annee-1986)) : EndIf
If JourMois = "10" And Num_Mois = 10 : DrawText(XX + 70, YY, "Anniv mimi "+Str(Annee-1983)) : EndIf
If JourMois = "30" And Num_Mois = 11 : DrawText(XX + 70, YY, "Anniv Jérôme "+Str(Annee-1987)) : EndIf
If JourMois = "15" And Num_Mois = 11 : DrawText(XX + 70, YY, "Anniv Amélie "+Str(Annee-1990)) : EndIf
EndSelect
;- Fêtes fixes
If JourMois = "01" And Num_Mois = 1 : DrawText(XX + 70, YY, "Nouvel An", $FF) : EndIf
If JourMois = "01" And Num_Mois = 5 : DrawText(XX + 70, YY, "Fête du travail", $FF) : EndIf
If JourMois = "08" And Num_Mois = 5 : DrawText(XX + 70, YY, "Victoire 1945", $FF) : EndIf
If JourMois = "14" And Num_Mois = 7 : DrawText(XX + 70, YY, "Fête Nationale", $FF) : EndIf
If JourMois = "15" And Num_Mois = 8 : DrawText(XX + 70, YY, "Assomption", $FF) : EndIf
If JourMois = "01" And Num_Mois = 11 : DrawText(XX + 70, YY, "Toussaint", $FF) : EndIf
If JourMois = "11" And Num_Mois = 11 : DrawText(XX + 70, YY, "Armistice 1918", $FF) : EndIf
If JourMois = "25" And Num_Mois = 12 : DrawText(XX + 70, YY, "Noël", $FF) : EndIf
If JourMois = "31" And Num_Mois = 12 : DrawText(XX + 70, YY, "St Sylvestre", $FF) : EndIf
;- Affichage saisons
If SiBissextile(Annee)= #Faux
If Num_Mois = 3 And JourMois = "21" : AfficheSaison($72D772)
ElseIf Num_Mois = 6 And JourMois = "22" : AfficheSaison($00F0F0)
ElseIf Num_Mois = 9 And JourMois = "23" : AfficheSaison($81C5FE)
ElseIf Num_Mois = 12 And JourMois = "22" : AfficheSaison($EEEEEE)
EndIf
Else
If Num_Mois = 3 And JourMois = "20" : AfficheSaison($72D772)
ElseIf Num_Mois = 6 And JourMois = "21" : AfficheSaison($00F0F0)
ElseIf Num_Mois = 9 And JourMois = "22" : AfficheSaison($81C5FE)
ElseIf Num_Mois = 12 And JourMois = "21" : AfficheSaison($EEEEEE)
EndIf
EndIf
If JourMois = RSet(Str(Day(Date())), 2, "0") And Num_Mois = Month(Date()) ;- AuJourd'hui
Si( JourSemaine = "Dimanche", CoulTexte = $FF, CoulTexte = 0) ; Blanc sur fond rouge ou blanc sur fond noir
DrawText(XX +2, YY, LSet(JourSemaine, 2, " ")+" ", $FFFFFF, CoulTexte)
si(JourMois >= "10", JourMois=Left(JourMois,2), JourMois=" "+Right(JourMois,1))
DrawText(XX + 26, YY, JourMois+" "+Str(DayOfYear(Date()))+"/"+Str(365+SiBissextile(Annee)-DayOfYear(Date())), $FFFFFF, CoulTexte)
;TraitHorizontal(1210, 730, 50, 20, CoulTexte)
DrawText(1270, 730, "AuJourd'hui", CoulFond, CoulTexte) ; légende
EndIf
YY + TextHeight(" ")+ 2
Next
XX + EspaceMois
YY = Y
EndProcedure
Procedure AfficheSaison(CoulFond)
DrawText(XX + 2, YY, LSet(JourSemaine,2," ")+" ", 0, CoulFond) ; Saison
DrawText(XX + 26, YY, JourMois, 0, CoulFond) ; Jour du mois
EndProcedure
Calculer()
CentrerTexte(#Fenetre_principale,10,"Pressez une touche ou cliquez un bouton de la souris pour sortir",$00FFFF)
StopDrawing()
FlipBuffers()
;-
;- gestion des événements en boucle sans fin
;
Global action.i = #f_aucune
Repeat
Global event = WindowEvent()
Select event
Case #PB_Event_CloseWindow
action = #f_sortie
Case 0
;
; il n'y a pas d'événements, donc faisons nos trucs graphiques
;
ExamineKeyboard()
If KeyboardPushed(#PB_Key_All)
action = #f_sortie
EndIf
ExamineMouse()
Resultat = MouseButton(#PB_MouseButton_Left)
If Resultat = 1
action = #f_sortie
EndIf
Resultat = MouseButton(#PB_MouseButton_Middle)
If Resultat = 1
action = #f_sortie
EndIf
Resultat = MouseButton(#PB_MouseButton_Right)
If Resultat = 1
action = #f_sortie
EndIf
;
; et montrons des choses sur l'écran
;
FlipBuffers()
;
EndSelect
Until action = #f_sortie
;
; fermer l'écran et la fenêtre en douceur
;
CloseScreen()
CloseWindow(#Fenetre_principale)
J'ai encore bien des choses à apprendre, mais je sais que vous allez m'aider, alors je reste tranquille.