Saisir uniquement des chiffres dans un edit [Résolu/Fermé]

Messages postés
18
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
6 décembre 2010
- - Dernière réponse : Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
- 4 oct. 2009 à 05:13
bonjour, je cherche un contole qui me permet a un Tedit d'accepter uniquement des chiffres ou des lettres
merci
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5
3
Merci
...
Il existe environ 720 réponses à cette question sur le forum, et environ 442939 sur google :

Cette solution (efficace à tous les coups, mais des scintillements peuvent peut-être apparaître) :

procedure TForm1.Edit1Change(Sender: TObject);
Var
 I: Integer;
 S: String;
begin
 S :=  '';
 for I := 1 to Length(Edit1.Text) do
  if (Edit1.Text[I] in ['0'..'9', 'a'..'z', 'A'..'Z' {peut rajouter des caractères}]) then S := S + Edit1.Text[I];

 Edit1.Text :=  S;
end;


OU

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in '0'..'9', 'a'..'z', 'A'..'Z' {peut rajouter des caractères}) then Key :  = #0;
 { GARDER LE #8, C'EST LA TOUCHE "RETOUR" }
end;


Cette dernière solution est plus légère, mais ne résiste pas au copier/coller (il faudra quand même faire un test avant d'utiliser les infos du TEdit)

Cordialement, Bacterius !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bacterius
Messages postés
18
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
6 décembre 2010
4
0
Merci
merci bacterus 100000000000 merci c'est ca que je cherche
encore merci
Commenter la réponse de cs_mark15
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5
0
Merci
Euh à cause du bug des majuscules, c'est plutôt :

... in ['0'..'9', 'A'..'Z', 'a..z'] dans le premier

et

... in '0'..'9', 'A'..'Z', 'a..z' dans le premier

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5
0
Merci
enfin le second pour le second ... vous aurez compris

Cordialement, Bacterius !
Commenter la réponse de Bacterius