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 /
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Etapes suivantes : mois à 30 ou 31 jours, années bissextiles
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" !
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Partager