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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 2 sept. 2010 à 12:42
cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015 - 6 sept. 2010 à 14:21
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

cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015
6 sept. 2010 à 14:21
bien vu : il manquait un simple InitCommonControls()
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 sept. 2010 à 15:04
devrait fonctionner...
manque surement un InitCommonControls(Ex ?)
cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015
2 sept. 2010 à 14:35
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 sept. 2010 à 12:42
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