comment faire pour configurer un EditText pour qu'il n'accepte que les dates et en ajoutant automatiquement le séparateur de mon choix - ou /
Version imprimable
comment faire pour configurer un EditText pour qu'il n'accepte que les dates et en ajoutant automatiquement le séparateur de mon choix - ou /
utilise le composant TMaskEdit
pour avoir un truc du genre :
__/__/____
Et même avec ça, il faudra tester la cohérence de la saisie
Pour ça, regarde du côté de IsValidDate
Encore mieux ;)
Plutôt que tester avec IsValidDate une fois la saisie terminée, tu veux bloquer la frappe en fonction de la position du curseur dans le mask
Dans mon exemple, la propriété EditMask a la valeur '!99/99/9999;1;_'Code:
1
2
3
4
5
6
7
8
9
10 procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char); begin case MaskEdit1.SelStart of 0: if Not (Key in ['0'..'3',#8,#32,#37,#39]) then Key := #0; //autorise 0,1,2,3,suppr,retour et flèches droite et gauche en position 0 1,4: if Not (Key in ['0'..'9',#8,#32,#37,#39]) then Key := #0; 3: if Not (Key in ['0'..'1',#8,#32,#37,#39]) then Key := #0; //etc. end; end;
A toi de compléter pour peaufiner les filtres, par exemple en n'autorisant que 0,1,2 en position 4 si on a tapé 1 en position 3 (le mois 13 n'existe pas :aie:)
Etapes suivantes : mois à 30 ou 31 jours, années bissextiles :mrgreen:
Rendons à César-BuzzLeclaire ce qui lui appartient
Le blocage du KeyPress je l'ai trouvé ici
http://www.developpez.net/forums/d69...ne-stringgrid/
OutOfRange il me semble que ta procédure n'est pas correcte.
Je me trompe peut - être mais elle semble autoriser une saisie du genre
"32/04/2009" !
Bonjour
Pourquoi ne pas tout simplement utiliser un DateTimepicker !! cela evite pas mal de probleme.
En plus par simple touche de déplacement on peut chosir la date que l'on souhaite ou alors la fleche pour afficher le calandar...
Bye.
OK popo :mrgreen:, c'était juste une piste de réflexion, comme je l'ai précisé dans mon post, à DzBadBoy de peaufiner les tests pour finalement n'autoriser que des dates valides :aie:Citation:
Envoyé par popo
Salut;
je crois qu'une fonction personnalisée de type IsDate a tout le mérite d'être coder. donc, simple Result si DateValide sinon gestion d'une exception...
Malheureseument je suis trop débordé pour réflèchir à ça, c'est juste une idée...
Bonne chance.