Ce bout de code permet de limiter la saisie dans un TEdit à un seul chiffre.
La première partie du code est relativement connue dans son principe.
Elle se contente de filtrer les caractères autorisés.
La deuxième m'a donné un peu plus de mal...
En réponse à une question posée récemment sur le forum.
Ce code filtre la saisie selon 4 critères :
- la boîte de saisie n'accepte que les chiffres, ainsi que deux touches autorisées, ici : retour arrière (#8) et Entrée (#13);
- elle n'accepte qu'un seul caractère (propriété Edit1.MaxLength := 1, qu'on peut déterminer par l'intermédiaire de l'Inspecteur d'Objets);
- si un caractère non autorisé est entré, le caractère valide déjà affiché dans la boîte de saisie est conservé.
- les caractères autorisés, mais autres que des chiffres, ne sont pas affichés.
Source / Exemple :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Edit1.MaxLength := 1; // 1
if not (Key in #13, '0'..'9') then // 2
begin
Key := #0; // 3
Exit; // 4
end
else
if not (Key in #13) then // 5
Edit1.Text := Key; // 6
// Traitement éventuel ici // 7
end;
{
1 on peut utiliser l'inspecteur d'objets
2 autorisé : retour, entrée, chiffres (adapter selon nécessité)
3 la touche pressée est nulle
4 sortie
5 touches autorisées mais qui ne sont pas des chiffres
6 affiche le chiffre saisi
7 traitement du contenu de la boîte de saisie
}
Un petit zip ci-joint, bien qu'il me paraisse peu utile...
Conclusion :
Si vous avez une autre méthode, n'hésitez pas à nous la faire partager !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.