«
»
Assistant de sélection de l’heure

Assistant de sélection de l’heure

Dans WinDev, il y a une option, sur les champs « date », pour ajouter un « bouton » calendrier à droite permettant ainsi de choisir la date facilement. Par contre, aucune option n’a été prévue pour choisir une heure à part dans une combo pré-remplie. On peut faire mieux !

En s’inspirant de ce qui se fait dans le logiciel de messagerie Mozilla Thunderbird (illustré à gauche), qui a prévu ce cas pour les rendez-vous, l’on peut facilement refaire ce comportement dans WinDev (illustré à droite).

Le principe est le suivant :

  • Les heures s’affichent toujours sur 2 lignes de 12 cases pour couvrir les 24 heures d’une journée.
  • Les minutes s’affichent sur 2 lignes de 6 cases selon un intervalle de 5 minutes.
  • Une flèche, en bas à droite de la table des minutes, permet d’agrandir ladite table pour afficher les 60 minutes composant une heure. On passe donc de 2 lignes à 10 lignes.
  • Si une heure est passée en paramètre (format chaine HHMM), la sélection de l’heure et de la minute est faite dans la fenêtre. Si la minute n’est pas un multiple de 5, la fenêtre s’agrandi automatiquement pour afficher toutes les minutes et sélectionne celle passée en paramètre.
  • Un double-clic sur une case « heure », renvoie, comme résultat, l’heure juste. Ex : un double-clic sur la case 9 heures renvoie « 0900 » (format chaine HHMM donc), qu’importe ce qui a été sélectionné dans les minutes.
  • Pour sélectionner une heure et une minute spécifique, par exemple, 9:25 il faut cliquer une fois sur le 9 dans la partie « heure » (sa couleur de fond change) et une autre fois sur le 25 dans la partie « minute ». La fenêtre se ferme et renvoie immédiatement « 0925 ».
  • La touche « échappe » permet de quitter cette fenêtre et renvoie l’heure passée en paramètre (ou vide si aucun paramètre n’a été passé)

Pour l’utiliser, télécharger la fenêtre en cliquant ici et mettre le code suivant dans un bouton à droite de votre champ Heure.

sHeure est une chaîne = OuvrePopupPosition(FEN_ChoixHeure,poBas+poGauche,SAI_Heure)
SI sHeure<>SAI_Heure ALORS SAI_Heure=sHeure;SAI_Heure..Modifié=Vrai

Petite option supplémentaire : la couleur de fond de sélection de l’heure et des minutes est passée en paramètre de la fenêtre.