Controle de saisie

Résolu
cs_kam81 Messages postés 114 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 11 février 2009 - 28 sept. 2005 à 19:36
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre 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.

3 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
28 sept. 2005 à 20:05
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
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
28 sept. 2005 à 20:10
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
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
28 sept. 2005 à 22:23
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 !
3
Rejoignez-nous