Restreindre une saisie

Résolu
Lulu_f5jcg Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Lulu_f5jcg Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis très débutant en Delphi C++ Builder. J'ai exposé mon problème dans d'autres forums sans réponse.
J'ai un TEdit nommé BandeEdit. Je désire autoriser la saisie seulement des chiffres et du . (point).
La propriété NumbersOnly du TEdit n'autorise pas le point.
A noter que j'ai codé ceci sans problème en Pascal.
Merci de me répondre pour me débloquer.
Cordialement
A voir également:

3 réponses

Utilisateur anonyme
 
Si tu peux intercepter un évènement qui se déclenche au moment de la frappe de la touche mais avant que le texte soit modifié (en C++ .Net ce serait KeyDown).
Tu peux tester s'il s'agit d'un nombre, de la virgule ou du point et autoriser ou interdire la poursuite de l'action (toujours en C++ .Net ce serait passer la propriété Handle de l'argument e à true).

Je ne sais pas si et comment cela est transposable avec des objets Delphi.
1
Lulu_f5jcg Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,
Merci pour toutes vos réponses mais je vais rester au Pascal de Delphi. J'ai voulu faire une incursion dans le C++ mais sans succès à ce jour car je bloque déjà sur un problème simple.
Cordialement
0
Utilisateur anonyme
 
Bonjour

J’ai jamais fait de c++ sur delphi… Mais au cas où, est ce que le Tedit avec NumberOnly accepte la virgule?
0
Lulu_f5jcg Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Whismeril,
Non, la propriété NumbersOnly du TEdit n'accepte ni point ni virgule, seulement les chiffres, et c'est là le problème.
Voici la solution qui fonctionne parfaitement en Pascal de Delphi :
Var
I: Integer;
S: String;
begin
S := '';
for I := 1 to Length(BandeEdit.Text) do
if (BandeEdit.Text[I] in ['0'..'9','.']) then S := S + BandeEdit.Text[I];
BandeEdit.Text := S;

Personne jusqu'à présent n'a trouvé une bonne solution. Mais courage...
0