Bonjour,
Je cherche � s�parer un num�ro de t�l�phone lorsque ce dernier est en cours de saisi.
Une fois le num�ro de tel est saisi, au lieu d'afficher 0606060606, il afficherait : 06 06 06 06 06
La saisi se fait dans un TEdit, j'ai essay� de faire l'ajout de l'espace sur l'�v�nement sur l'�v�nement KeyPress, avec plusieurs m�thode diff�rentes, mais ca marche pas correctement ou pas du tout![]()
Voila ce que j'ai test� :
Un autre d�faut avec ce que j'ai fait (dans le cas ou ca fonctionnerais correctement), c'est que si l'utilisateur modifie un numero en plein milieu du telephone, ca cr�era des problemes
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 bool test; test=true; //Désactive toutes les touches sauf les touches numériques, backspace et supprime if ((Key==8) || (Key==127) || ((Key>='0') && (Key<='9'))) test=false; if (test) Key=0; if((Key>='0') && (Key<='9')) { if((EditTel1->Text.Length()==2) || (EditTel1->Text.Length()==5) || (EditTel1->Text.Length()==8) || (EditTel1->Text.Length()==11)) { //1ere méthode : Coller a la chaine existante un espace, mais ca met le curseur du clavier au début, et le caractére taper se met au début de l'ansi (faudrai délacer le curseur a la fin du TEdit) EditTel1->Text=EditTel1->Text+" "; //2eme méthode : Insérer un espace à la fin de l'ansistring, mais ca n'ajoute rien du tout EditTel1->Text.Insert(" ",EditTel1->Text.Length()); /*ou*/ EditTel1->Text=EditTel1->Text.Insert(" ",EditTel1->Text.Length()); //3eme méthode : ajouter le caractére espace après le dernier caractére, avant que le caractére taper se s'affiche EditTel1->Text[EditTel1->Text.Length()+1]=' '; //ca plante (normal) /*ou*/ EditTel1->Text[EditTel1->Text.Length()]=' '; //le derniere caractère n'est pas remplacer par un espace } }
J'ai aussi chercher au niveau du TEdit, s'il avait un mask tout pres, mais j'ai rien trouv� � se niveau la.
Si vous avez une solution, ou une m�thode pour s�parer le num, je suis preneur ^^
Merci
Partager