Seulement des chiffres dans un edit. [Résolu]

Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
25 septembre 2005
- - Dernière réponse : cs_neko
Messages postés
135
Date d'inscription
jeudi 14 août 2003
Dernière intervention
12 octobre 2006
- 28 juil. 2005 à 21:16
Salut à tous,



Je voudra savoir si qqn d'entre vous sait comment faire pour qu'un edit n'accepte que des chiffres.



Merci à tous et désolé pour autant de questions suivies.
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
3
Merci
salut ,

tu peux aussi utiliser la source de jappee:

[http:// http://www.delphifr.com/code.aspx?ID=32310 ]

qui gére la saisie et la validité de la saisie (nobre entier ou decimaux)

bonne prog

Dire « Merci » 3

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

Codes Sources a aidé 101 internautes 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
3
Merci
salut

pour des nombres entiers j'utilise:

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 buffer='' then buffer:='0';

if buffer<>'0' then

begin

if pos('-',buffer) =0 then buffer:= '-'+buffer

else delete(buffer,1,1);

end;

Text: =buffer;key:= #0;

end ;

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

end;

procedure TFormi..Edit1Exit(Sender: TObject);

begin

with sender as Tedit do text:=inttostr(tag);// je place la valeur dans le tag



end;

Dire « Merci » 3

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

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de jlen100
Messages postés
135
Date d'inscription
jeudi 14 août 2003
Dernière intervention
12 octobre 2006
0
Merci
Tu as SpinEdit dans l'onglet "Exemples" qui fait ça déjà :)

bouh
Commenter la réponse de cs_neko
Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
25 septembre 2005
0
Merci
J'ai pas ce composant dans mon delphi 7
Commenter la réponse de Becracker
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
19 novembre 2018
0
Merci
Dans l'événement OnKeyPress de ton Edit tu met ceci:



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

begin

If not (Key in ['0'..'9', DecimalSeparator]) then Key:=#7;

end;
Commenter la réponse de cptpingu
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
Je conseille plutôt :

If not (Key in [#8, '0'
..'9', DecimalSeparator]) then Key:=#9;

ce qui laisse passer aussi la touche [retour arrière]

@+
Bonne Prog'
Nico [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 !
Commenter la réponse de ni69
Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
25 septembre 2005
0
Merci
Question à [auteurdetail.aspx?ID=332111 CptPingu] et ni69, quand je mets la procédure que vous m'avez conseillé dans mon code, il me dit Edit1KeyPress non déclaré ...
Commenter la réponse de Becracker
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
j'avais oublie pour eviter les plantages:

procedure TForm1.Edi1Change(Sender: TObject);

var valeur:integer;

var buffer:string;

begin

with sender as Tedit do

begin

valeur:= 0;

buffer:=text;

if pos('-',buffer) =2 then

begin delete(buffer,1,1);text:= buffer; end ;

if Text<>'' then valeur: =strtoint(Text);

Tag:=valeur;

end;

end;
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
pour ton pb de Edit1KeyPress non déclaré as tu double clique sur l'evenement onkeypress de label1?
Commenter la réponse de jlen100
Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
25 septembre 2005
0
Merci
Ok, ca marche, merci à vous. Je voulais juste savoir à kel caractère corespondait #7 et #9 svp.



Merci pour tout.
Commenter la réponse de Becracker
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
le caractere #7 correspond a bell (sonnerie) et #9 au retour arriere
Commenter la réponse de jlen100
Messages postés
116
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
25 septembre 2005
0
Merci
On appelle ca une écriture héxadécimale ou koi ?
Commenter la réponse de Becracker
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
Petite correction jlen100 : #9 correspond à une tabulation (TAB), pas au retour arrière (qui lui est représenté par #8).

Au final, l'effet est le même car #7 et #9 déclenchent un bip



Becracker : ce sont les codes ASCII des caractères.


@+
Bonne Prog'
Nico [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 !
Commenter la réponse de ni69
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
effectivement j'ai fais une petite erreur quoique sur mon PC #9 ne fait rien --> equivalent au #0
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
neko,

petite precision sur le composant SpinEdit;

il présente un defaut à l'utilisation:

quand on efface totalement la saisie et que l'on tente de lire la
propriete value on obtient une erreur d'execution et je n'ai pas reussi
a intercepter l'exception
Commenter la réponse de jlen100
Messages postés
135
Date d'inscription
jeudi 14 août 2003
Dernière intervention
12 octobre 2006
0
Merci
En effet, tu ne peux pas intercepter l'exception car celle-ci l'est déjà dans le code du Spin Edit.

Donc en session de deboggage l'exeption apparait mais en "utilisation réelle" c'est la valeur minimum qui sera renvoyée


bouh
Commenter la réponse de cs_neko

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.