Page 1 sur 1
[UDF] Calendar + Date
Posté : mer. 02 févr. 2011 12:26
par TommyDDR
Bonjour à tous, après avoir codé toute la journée d'hier ainsi que ce matin (Oui, oui je suis sencé avoir un travail ^^') et pour faire honneur à ce nouveau grade, je vous propose aujourd'hui un (deux) UDF(s) qui en ravira plus d'un (si vous trouvez que GuiCtrlCreateDate() n'est pas convenable graphiquement)
Utilisation :
- Clic sur un jour pour changer celui-ci
- Clic sur une flèche pour changer de mois
- Clic sur le nom du mois (rester cliqué) puis bouger la souris jusqu'au mois voulu et relacher la souris pour selectionner celui-ci
Une petite impression écran :
Puis, un simple code pour tester le calendar :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "UDF_Calendar.au3"
HotKeySet("é", "changecolor")
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $Calendar
Dim $Date = $UDF_Today
$Date[0] = 27
Dim $Col[9]
$Gui = GUICreate("test", 170, 150, -1, -1, $WS_POPUPWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
$Calendar = _GUICtrlCalendar_Create($Gui, 10, 10, "")
_GUICtrlCalendar_SetOnEvent($Calendar, "DateChange")
_GUICtrlCalendar_SetDate($Calendar, AddJour($Date, -5))
WinSetTrans($Calendar, "", 100)
GUISetState(@SW_SHOW, $Gui)
While(True)
Sleep(10)
WEnd
Func changecolor()
For $i = 0 To 8
$Col[$i] = Random(0x000000, 0xFFFFFF, 1)
Next
_GUICtrlCalendar_SetColor($Calendar, $Col[0], $Col[1], $Col[2], $Col[3], $Col[4], $Col[5], $Col[6], $Col[7], $Col[8])
EndFunc
Func DateChange($IdCalendar, $Date)
_GUICtrlCalendar_AddMark($IdCalendar, $Date)
If(@error) Then
_GUICtrlCalendar_DelMark($IdCalendar, $Date)
EndIf
EndFunc
Func quit()
Exit
EndFunc
Et les fameux UDF :
Re: [UDF] Calendar + Date
Posté : mer. 02 févr. 2011 13:24
par scorp84
Wahouuuuuuuu ! Magnifique.
Merci pour ce partage.
Amicalement.
BM
Re: [UDF] Calendar + Date
Posté : mer. 02 févr. 2011 13:31
par TommyDDR
De rien !!
C'est ce genre de réponse qui font tout le plaisir du partage

Re: [UDF] Calendar + Date
Posté : mer. 02 févr. 2011 13:57
par zeshrek
heuuuuu.... c'est quoi la différence profonde avec GUICtrlCreateDate() ?
(désolé, de casser l'ambiance, mais....)
Re: [UDF] Calendar + Date
Posté : mer. 02 févr. 2011 14:44
par TommyDDR
L'apparence
Voici le GUICtrlCreateDate() de Windows XP (ne me dites pas que vous ne voyez pas de différences...) :

- DateXP.PNG (4.36 Kio) Vu 12883 fois
Re: [UDF] Calendar + Date
Posté : mer. 02 févr. 2011 15:26
par zeshrek
Non mais il est bien ton udf, je voulais pas dénigrer.
Juste que même si l'apparence c'est important (sinon on se ferait pas suer sur les GUI), je me demandais si sur un plan purement fonctionnel il apportait quelquechose.
Tiens bin justement a ce sujet, est ce que tu crois que ca serait possible de lui faire renvoyer aussi l'écart entre le jour sélectionné et la date du jour ? Ou de lui faire afficher non pas par mois mais par N° de semaine (pratique au boulot ou on dit plus facilement "le lundi de la semaine 12" plutot que le 28 mars) ?
Re: [UDF] Calendar + Date
Posté : jeu. 03 févr. 2011 09:57
par TommyDDR
Petite mise à jour
_GetEcartJoursFromToday($NumeroCalendar)
nous donne le nombre de jours entre la date actuelle et la date sélectionnée
@zeshrek : Je me penche sur l'affichage par semaines
Vous remarquerez mon amour envers la fusion des deux langues que sont l'anglais et le français ^^
Re: [UDF] Calendar + Date
Posté : jeu. 03 févr. 2011 11:27
par zeshrek
TommyDDR a écrit :_GetEcartJoursFromToday($NumeroCalendar)
(...)
Vous remarquerez mon amour envers la fusion des deux langues que sont l'anglais et le français ^^
Tu aurais pu faire mieux et inclure du grec en plus en l'appelant
_Get
DeltaJoursFromToday($NumeroCalendar)
Là, c'était carrément la classe internationale !

Re: [UDF] Calendar + Date
Posté : jeu. 03 févr. 2011 11:36
par TommyDDR
Et voila, nouvelle mise à jour spéciale zeshrek
- Possibilité de changer le mode d'affichage :
à l'ilitialisation _GUICtrlCalendar_Create($Gui, 10, 10, "", 1)
après l'initialisation _GuiCtrlCalendar_SetAffichage($Calendar, 1)
Edit : au passage, j'ai renomé mes fonction comme pour un vrai UDF
_GUICtrlCalendar_xxxxx()
Re: [UDF] Calendar + Date
Posté : ven. 04 févr. 2011 16:10
par TommyDDR
Vous l'attendiez, une nouvelle mise à jour est disponible !
- Possibilité d'ajouter / supprimer des marques sur le calendrier
Code : Tout sélectionner
_GUICtrlCalendar_AddMark($NumeroCalendar, $Date)
_GUICtrlCalendar_DelMark($NumeroCalendar, $Date)
- Possibilité de bouger le calendrier
- Possibilité d'associer une fonction à chaque changement de date
Re: [UDF] Calendar + Date
Posté : ven. 04 févr. 2011 16:22
par zeshrek
Bravo, ca commence a avoir de la gueule ! Et du coup je me pose plus trop la question de savoir ce qu'il fait de mieux que le calendrier intégré
Hmmm et si tu faisait une petite fonction toute bête... ou pas :
_GUICtrlCalendar_SetColor($NumeroCalendar, $CouleurFond, $CouleurBordure, $CouleurJoursDuMoisEnCours, $CouleurJoursGrisés, $CouleurDateDuJour...etc)
Avec bien sur la possibilité de mettre la couleur de chaque élément.
ca peremttrait a ceux qui vont l'utiliser de pouvoir le parametrer a leur propre palette.
(oui je sais, je suis chi*nt

)
Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 10:24
par TommyDDR
Et voila, sur la demande spéciale de Mr zeshrek, les couleurs sont personnalisables grâce à la fonction :
Code : Tout sélectionner
_GUICtrlCalendar_SetColor($NumeroCalendar, $CouleurFond = "", $CouleurBordure = "", $CouleurFleches = "", $CouleurJoursDuMoisEnCours = "", $CouleurJours = "", $CouleurJoursGrises = "", $CouleurJoursMarques = "", $CouleurOjdui = "", $CouleurDateChoisie = "")
(Ouch, ca fait mal ^^')
UP du 1er post.
Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 11:10
par zeshrek
Alors là je ne vois pas grand chose a demander de plus, et il ne me reste plus qu'a te féliciter pour ton UDF.
Il ne te reste plus qu'a faire un peu de lobying aupres de Tlem pour qu'il soit mis par défaut dans les incudes qu'il fournit en standard avec la distrib francaise

Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 11:19
par TommyDDR

un UDF à moi, dans le pack Fr ?
Cela serait un honneur

Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 11:27
par zeshrek
Pour augmenter tes chances fais une doc sur le modèle de ce qui s'affiche quand tu appuie sur F1 (syntaxe, explications, exemple) et apres, a la grace de dieu...

Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 14:56
par Jerome
Coucou,
Trés sympa cet UDF, j'adore.
Je verrai bien encore une petite amélioration.
Style un double clique sur un date ouvre une page de saisit de texte pour des événements que l'on peut enregistrer et qui sera garder en mémoire (gestion de fichier ini ...)
Je ne sait pas si sa rentre bien en compte dans un UDF comme celui-ci, mais c'est ma petite idée.
J'aime beaucoup en tout cas, très bon boulot
Jérôme
Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 15:22
par zeshrek
Hmmmm.... là je dirai plutot que ca rendre dans le cadre d'une appli faite en utilisant l'UDF.
Tiens je te propose un nom pour ca : Agenda

Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 16:24
par TommyDDR
Bah... "lol quoi" comme diraient les jeunes.
Je suis en train de coder une application nomé "Agenda.exe" xD
Je posterai en exemple de script une fois fini
En faite, je voulais des le début coder cette application (d'où la possibilité de marquer des dates

), mais au lieu de me lancer tête-bêche dans le code, je me suis posé et ai réfléchi à comment le faire proprement et en pouvant réutiliser des éléments et UDF_Calendar (+ UDF_Date) est (sont) né(s).
Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 16:51
par zeshrek
TommyDDR a écrit :Bah... "lol quoi" comme diraient les jeunes.
Et c'est un mec de 21 balais qui dit ca !
Mouahhhhhhhhhh !!!

Re: [UDF] Calendar + Date
Posté : lun. 07 févr. 2011 17:02
par TommyDDR

c'est que je ne me fais plus tout jeune !