Bonjour,
J'aimerais connaitre la méthode pour que l'utilisateur puisse saisir uniquement des chiffres.
Version imprimable
Bonjour,
J'aimerais connaitre la méthode pour que l'utilisateur puisse saisir uniquement des chiffres.
Bonjour,
Tu mets un test sur les caractères saisis dans ta fonction de l'évènement onChange
par exemple
C'est comme cela que je fais pour ma part (si quelqu'un a mieux, je suis preneur :D)Code:
1
2
3
4
5
6
7
8
9
10
11
12 void __fastcall Form1::Edit1Change(TObject *Sender) { if (Edit1->Text.ToIntDef(999) == 999) { // La valeur saisi n'est pas un chiffre } else { // La valeur saisi est un chiffre } }
Cordialement
Thorgal100
Pourquoi ne mets-tu pas la propriété NumbersOnly de ton Tedit a True?
Salut toutounesan
C'est sur le site dans trucs et astuces pour c++ Builder
Le lien
Le texteCitation:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Saisir que des chiffres dans un TEdit : Sur l'événement OnCreate de la Form (Form1) pour Edit1 : void __fastcall TForm1::FormCreate(TObject *Sender) { SetWindowLong(Edit1->Handle,GWL_STYLE, GetWindowLong(Edit1->Handle,GWL_STYLE) | ES_NUMBER ); } 2eme Solution: Saisir que des chiffres et au plus une virgule dans un TEdit Sur l'événement OnKeyPress du TEdit (Edit1): void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator || ((TEdit *)Sender)->Text.Pos(DecimalSeparator)!=0)) Key = NULL; } En utilisant "((TEdit *)Sender)" au lieu de "Edit1" dans la méthode. Elle devient valable pour n'importe quel TEdit.
Peut-être parce que NumbersOnly n'existe que depuis Delphi 2009:
http://nono40.developpez.com/tutorie...uveautes-2009/
version 6.0