Controle de saisie [Résolu]

Messages postés
114
Date d'inscription
dimanche 25 septembre 2005
Dernière intervention
11 février 2009
- - Dernière réponse : ni69
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
- 28 sept. 2005 à 22:23
Bonjour,
comment empêcher les utilisateurs de saisir 2 fois ou plus la virgule dans un tedit pour faire rentrer une valeur monetaire.a savoir que dans l'evenement onkeypress je n'autorise que la virgule et les chiffres.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
7
3
Merci
salut tu peux faire ça

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

var buffer:string;

begin

with sender as Tedit do

if key=',' then

begin

buffer:= Text;

if pos(',',buffer)<>0 then key:=#0;

end;

end;

bonne prog

Dire « Merci » 3

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

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

Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
7
3
Merci
pour le controle des chiffres tu peux rajouter

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

const Valid = #13,',', '0'..'9';

var buffer: string ;

begin

with sender as Tedit do

if key =',' then

begin

buffer:= Text;

if pos(',',buffer)<>0 then key: =#0;

end;

if not(key in valid) then key:=#0;

end;

bonne prog

Dire « Merci » 3

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

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

Commenter la réponse de jlen100
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
9
3
Merci
Salut, on peut simplifier le code comme ceci :

if ((key DecimalSeparator) and (Pos(DecimalSeparator,(Sender <gras>as TEdit).Text) <> 0)) or (not (key in #13,DecimalSeparator,'0'..'9')) then key :</gras> #9; // provoque un bip d'erreur si un mauvais caractère est tapé


On remarquera l'utilisation de DecimalSeparator qui renvoie le séparateur décimal en vigueur sur l'ordinateur, afin de s'adapter à un plus grand nombre de situations


@+

Nico { http://www.ni69.new.fr/ }




<hr size="2" width="100%">

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

Dire « Merci » 3

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

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

Commenter la réponse de ni69

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.