Controle de saisie [Résolu]

cs_kam81 114 Messages postés dimanche 25 septembre 2005Date d'inscription 11 février 2009 Dernière intervention - 28 sept. 2005 à 19:36 - Dernière réponse : ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention
- 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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 sept. 2005 à 20:05
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

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de jlen100
Meilleure réponse
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 sept. 2005 à 20:10
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

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de jlen100
Meilleure réponse
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 28 sept. 2005 à 22:23
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 !

Merci ni69 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes 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.