AJOUT D'UN CONTRÔLE CALENDRIER EN DYNAMIQUE SUR UNE FORM, D'UNE MANIÈRE PEUT CON

Signaler
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Messages postés
31
Date d'inscription
vendredi 19 mai 2000
Statut
Membre
Dernière intervention
21 juillet 2015
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52248-ajout-d-un-controle-calendrier-en-dynamique-sur-une-form-d-une-maniere-peut-conventionnelle

Messages postés
31
Date d'inscription
vendredi 19 mai 2000
Statut
Membre
Dernière intervention
21 juillet 2015

bien vu : il manquait un simple InitCommonControls()
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
devrait fonctionner...
manque surement un InitCommonControls(Ex ?)
Messages postés
31
Date d'inscription
vendredi 19 mai 2000
Statut
Membre
Dernière intervention
21 juillet 2015

salut,

- TimerCalendar = False / True en début et fin de procédure sont des sécurités que je met systématiquement sur mais Timer.

- Mon code permet un fonctionnement dans les 2 sens : tu peux soit cliquer dans le calendrier, soit modifier la date dans la TextBox et faire SET pour fixé la date sur le calendier...

...Par contre j'ai détecté un problème : LE CODE NE FONCTIONNE QUE DANS L'ENVIRONNEMENT VB !

une fois compilé, CreateWindowEx retourne 0 et rien ne s'affiche (VB5 Pro) !

Je cherche.... mais je ne comprend pas pourquoi... (compile en natif ou p-code)

A+ Patrick
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Si on regarde le code de ton Timer, la zone de texte ne se remplit pas toute seule, avant que l'on ne change la valeur du calendar...

ton TimerCalendar est inutile, deux intervalles ne survenant jamais en même temps.

en bref, je mettrai :

Private Sub TimerCalendar_Timer()
Dim CurSysTime As SYSTEMTIME
Dim NewDT As String
SendMessage dtHwnd, MCM_GETCURSEL, 0&, CurSysTime
NewDT = FormatDateTime(DateSerial(CurSysTime.wYear, CurSysTime.wMonth, CurSysTime.wDay), vbShortDate)
If TextBox1 <> NewDT Then
Me.TextBox1.Text = NewDT
End If
End Sub