Interdire deux virgules

Résolu
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008 - 27 mai 2005 à 22:02
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008 - 29 mai 2005 à 13:40
Bonjour,



j'ai un edit sur ma fiche, et j'aimerais bien qu'on ne puisse pas entrer deux virgules dedans, comment puis-je faire?



Merci

12 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
27 mai 2005 à 22:26
Tu peux faire comme ceci (rajoute le code dans l'événement OnKeyPress de ton TEdit ) :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if Key = ',' then if Pos( ',' , Edit1.Text ) <> 0 then Key := #9;
// Si une virgule se trouve déjà dans le texte de l'Edit, un bip se
produit (#9)

end;



@+
Bonne Prog'
Nico

<hr>

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




www.ni69.new.fr</italique>
3
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
28 mai 2005 à 10:38
Solution acceptable, mais je pouuse le bouchon et je colle "1554,1154,1" j'ai donc 2 , et aucun bip =)



je propose ça :



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if Key = ',' then if Pos( ',' , Edit1.Text ) <> 0 then Key := #9;

end;



procedure TForm1.Edit1Exit(Sender: TObject);

var temp: string;

begin

temp := edit1.text;

if pos(',', temp)>0 then

begin

delete(temp,0, pos(',',temp));

if pos(',', temp)>0 then

begin

beep;

Showmessage('Attention il y a 2 , !');

edit1.SetFocus;

edit1.SelectAll;

end;

end;

end;



ça vérifié en plus lors du OnExit que 2 , ne sont pas présentes.
3
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
27 mai 2005 à 23:13
Salut,
Simplement pour mes connaissances ni69, la fonction pos donne la position du caractère dans la chaine. C'est ça ?? et elle renvoie 0 sinon ?

Ps : en taille 1 c'est udr à lire :p


N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
27 mai 2005 à 23:18
Comme tu le dis, la fonction Pos(SousChaîne, Chaîne) renvoie la
position de la SousChaîne dans la Chaîne et 0 si elle n'est pas
présente.

Désolé
pour
la taille

des
caractères
!




@+
Bonne Prog'
Nico

<hr>

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




www.ni69.new.f</italique>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
28 mai 2005 à 00:02
mdrrrrrrrrrrrr c'est pas grave pour la taille, vive le ctrl + molette arrière :p



N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
28 mai 2005 à 08:46
"vive le ctrl + molette arrière " : je viens d'apprendre quelque chose aujourd'hui. Merci sim51

<
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
28 mai 2005 à 11:40
Bien vu JulioDelphi !

J'avoue que n'y avais pas pensé !



@+
Bonne Prog'
Nico

<hr>

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




www.ni69.new.fr</italique>
0
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008
28 mai 2005 à 12:55
pas mal, j'avoue que je n'avais pas pensé non plus qu'on pouvait coller


n'y a t-il pas un moyen plus simple qui permettrait d'interdir de coller dans un label ?
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
28 mai 2005 à 13:17
C'est le moyen simple celui là, après tu peux changer le composant edit
afin qui ne reçoive plus le message windows du collage, tu peux aussi
bidouiller (plus compliqué que ce que j'ai fait) qu'il vérifié quand
une touche est appuyée que ce n'est pas un "ctrl" enfoncé avec un "v"
ou un "V" puis ajouter un menu en clic droit pour supprimer l'original,
enfin bref, beaucoup plus compliqué et bidouillé que mes quelques
lignes =)
0
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008
28 mai 2005 à 13:41
et comment faire pour ne pas faire afficher le message du collage?
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
28 mai 2005 à 20:13
Hum ... Une petite lecture du code pour voir mon simple

Showmessage('Attention il y a 2 , !');

A toi de le supprimer.
0
Maniaxman Messages postés 155 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 17 juillet 2008
29 mai 2005 à 13:40
dsl, ce que je voulais dire c'était comment ne pas faire afficher "coller" dans le menu contextuel de l'edit, mais je crois que j'ai tout ce qu'il me faut, merci a vous tous
0
Rejoignez-nous