Page 1 sur 1

Jours /Date/heure

Publié : mar. 22/mars/2011 18:10
par MLD
Un petit code pour les débutants ou autres.
Fait aujourd'hui pour une appli perso :D

Code : Tout sélectionner

**** MLD le 22/3/2011 *****
Enumeration
#Fenpr
EndEnumeration

Procedure TimerProc2(hwnd.l, uMsg.l, idEvent.l, dwTime.l) ;timer pour faire date + pendule dans la barre de titre
     Select uMsg 
         Case #WM_TIMER 
             Select idEvent 
              Case 2
               Select DayOfWeek( Date())
                Case 0
                Jour$ = "Dimanche"
                Case 1
                Jour$ = "Lundi"
                Case 2
                Jour$ = "Mardi"
                Case 3
                Jour$ = "Mercredi"
                Case 4
                Jour$ = "Jeudi"
                Case 5
                Jour$ = "Vendredi"
                Case 6
                Jour$ = "Samedi"
               EndSelect
               Date$ = Jour$ +":" + FormatDate(" %dd : %mm : %yyyy | %hh : %ii : %ss", Date())                      
               SetWindowTitle(#Fenpr,"Ce jour  " + Date$) ;Affichage dans le titre, mais vous pouvez afficher ou vous voulez
           EndSelect 
     EndSelect      
EndProcedure 


OpenWindow(#Fenpr, 0, 0,380,280, "Ce jour  ", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  | #PB_Window_ScreenCentered) 
StickyWindow(#Fenpr, 1)
SetWindowColor(#Fenpr,$B7D9D9)
Handle = WindowID (#Fenpr) ;Handle de la fenêtre 
Tim1 = SetTimer_ (Handle, 2, 50, @TimerProc2())

Repeat
  Event = WaitWindowEvent()
  
  
  
Until event = #PB_Event_CloseWindow  
KillTimer_(WindowID(#Fenpr),Tim1) 
End


Re: Jours /Date/heure

Publié : mer. 23/mars/2011 19:48
par Jacobus
Avec le mois...

Code : Tout sélectionner

;**** MLD le 22/3/2011 *****
Enumeration
#Fenpr
EndEnumeration

Procedure TimerProc2(hwnd.l, uMsg.l, idEvent.l, dwTime.l) ;timer pour faire date + pendule dans la barre de titre
     Select uMsg
         Case #WM_TIMER
             Select idEvent
              Case 2
               Select DayOfWeek( Date())
                Case 0
                Jour$ = "Dimanche"
                Case 1
                Jour$ = "Lundi"
                Case 2
                Jour$ = "Mardi"
                Case 3
                Jour$ = "Mercredi"
                Case 4
                Jour$ = "Jeudi"
                Case 5
                Jour$ = "Vendredi"
                Case 6
                Jour$ = "Samedi"
               EndSelect
               
               Mois = Month(Date())
               If Mois = 1      : Mois$ = "Janvier"
               ElseIf Mois = 2  : Mois$ = "Février"
               ElseIf Mois = 3  : Mois$ = "Mars"
               ElseIf Mois = 4  : Mois$ = "Avril"
               ElseIf Mois = 5  : Mois$ = "Mai"
               ElseIf Mois = 6  : Mois$ = "Juin"
               ElseIf Mois = 7  : Mois$ = "Juillet"
               ElseIf Mois = 8  : Mois$ = "Août"
               ElseIf Mois = 9  : Mois$ = "Septembre"
               ElseIf Mois = 10 : Mois$ = "Octobre"
               ElseIf Mois = 11 : Mois$ = "Novembre"
               ElseIf Mois = 12 : Mois$ = "Décembre"
               EndIf 
               
                 
               Date$ = Jour$ +" " + FormatDate(" %dd ", Date()) + Mois$ + FormatDate("  %yyyy", Date()) +" - Il est : "+ FormatDate("%hh h %ii : %ss", Date())                     
               SetWindowTitle(#Fenpr,Date$) ;Affichage dans le titre, mais vous pouvez afficher ou vous voulez
           EndSelect
     EndSelect     
EndProcedure


OpenWindow(#Fenpr, 0, 0,450,150, "Ce jour  ", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget  | #PB_Window_ScreenCentered)
StickyWindow(#Fenpr, 1)
SetWindowColor(#Fenpr,$B7D9D9)
Handle = WindowID (#Fenpr) ;Handle de la fenêtre
Tim1 = SetTimer_ (Handle, 2, 50, @TimerProc2())

Repeat
  Event = WaitWindowEvent()
 
 
 
Until event = #PB_Event_CloseWindow 
KillTimer_(WindowID(#Fenpr),Tim1)
End

Re: Jours /Date/heure

Publié : mer. 23/mars/2011 20:22
par Backup
..........

Re: Jours /Date/heure

Publié : jeu. 24/mars/2011 9:05
par Jacobus
Y a pas photo... :lol:

Re: Jours /Date/heure

Publié : jeu. 24/mars/2011 17:19
par MLD
T'es un bon Dobro :lol:
qui peu en douter :?: :wink:
Merçi a Jacobus pour le complément :lol:

Re: Jours /Date/heure

Publié : jeu. 24/mars/2011 19:28
par Backup
j'aime vraiment cette fonction (stringfield()) je l'utilise a toute les sauces
parceque j'aime bien les Chaines de caracteres, c'est peut etre plus long traiter
mais tellement plus proche de l'homme

mettre :
if a.s="ok"

c'est pus parlant que :
if a=1
bien sur l'exemple est trivial, mais des que je peux je bosse avec les Strings
et en plus Stringfield() est un Tableau a 1 dimension

rien qu'en faisant a.s="toto,titi,tata"
une simple chaine de caractere deviens avec Stringfield() un Tableau 1 dimension

Code : Tout sélectionner

a.s="toto,titi,tata"
For i=1 To 3
  Debug StringField(a.s,i,",")
Next i
c'est puissant comme truc l'air de rien ..

ça peut simuler un tableau 1 dimension, mais aussi une list chainée,(avec mid() ...) etc ...

c'est vraiment a mon avis la plus belle fonction du language ... :)

Re: Jours /Date/heure

Publié : ven. 25/mars/2011 8:44
par MLD
Salut Dobro
Tu as raison (stringfield()) est une bonne fonction. Je n'est pas le réflexe de son utilisation.Il faut que je comble cette lacune.
Bonne journée :lol:
Michel

Re: Jours /Date/heure

Publié : dim. 27/mars/2011 11:50
par Jacobus
Modifiez la procédure de Dobro comme ci-dessous

Code : Tout sélectionner

Procedure TimerProc2(hwnd.l, uMsg.l, idEvent.l, dwTime.l) ;timer pour faire date + pendule dans la barre de titre
  Jour$ = "Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi"
  Mois$ = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre"
  Select uMsg
    Case #WM_TIMER
      Select idEvent
        Case 2
          If DayOfWeek( Date()) = 0
            Jour$ = "Dimanche"
           Else 
            Jour$ = StringField(Jour$, DayOfWeek( Date()),",")
          EndIf             
          Mois$ = StringField(Mois$,Month(Date()),",")          
          Date$ = Jour$ +" " + FormatDate(" %dd ", Date()) + Mois$ + FormatDate("  %yyyy", Date()) +" et Il est : "+ FormatDate("%hh h %ii : %ss", Date()) 
          StatusBarText(#STATUSBAR, 1, Date$)
      EndSelect
  EndSelect     
EndProcedure
Pourquoi ?
L'index dans: StringField(Chaine$, Index, Delimiteur$) doit être au moins égal à 1
Le dimanche étant égal à 0 -> Plantage!

@+

Re: Jours /Date/heure

Publié : dim. 27/mars/2011 12:04
par Backup
..........

Re: Jours /Date/heure

Publié : dim. 27/mars/2011 12:29
par Jacobus
Je ne doutais pas que tu allais corriger ce code à sa juste présentation :wink: