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

Becracker 116 Messages postés dimanche 12 décembre 2004Date d'inscription 25 septembre 2005 Dernière intervention - 28 juil. 2005 à 16:24 - Dernière réponse : cs_neko 135 Messages postés jeudi 14 août 2003Date d'inscription 12 octobre 2006 Dernière intervention
- 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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 16:53
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

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 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 juil. 2005 à 17:01
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;

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

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

bouh
Commenter la réponse de cs_neko
Becracker 116 Messages postés dimanche 12 décembre 2004Date d'inscription 25 septembre 2005 Dernière intervention - 28 juil. 2005 à 16:30
0
Merci
J'ai pas ce composant dans mon delphi 7
Commenter la réponse de Becracker
cptpingu 3797 Messages postés dimanche 12 décembre 2004Date d'inscription 13 août 2018 Dernière intervention - 28 juil. 2005 à 16:38
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
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 28 juil. 2005 à 16:53
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
Becracker 116 Messages postés dimanche 12 décembre 2004Date d'inscription 25 septembre 2005 Dernière intervention - 28 juil. 2005 à 17:06
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 17:22
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 17:26
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
Becracker 116 Messages postés dimanche 12 décembre 2004Date d'inscription 25 septembre 2005 Dernière intervention - 28 juil. 2005 à 18:10
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 18:14
0
Merci
le caractere #7 correspond a bell (sonnerie) et #9 au retour arriere
Commenter la réponse de jlen100
Becracker 116 Messages postés dimanche 12 décembre 2004Date d'inscription 25 septembre 2005 Dernière intervention - 28 juil. 2005 à 18:16
0
Merci
On appelle ca une écriture héxadécimale ou koi ?
Commenter la réponse de Becracker
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 28 juil. 2005 à 18:31
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 19:33
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 28 juil. 2005 à 20:27
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
cs_neko 135 Messages postés jeudi 14 août 2003Date d'inscription 12 octobre 2006 Dernière intervention - 28 juil. 2005 à 21:16
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.