Saisir des entiers seulement

kdel Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 26 septembre 2007 - 25 oct. 2005 à 01:13
kdel Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 26 septembre 2007 - 14 nov. 2005 à 20:44
bonjour à tous, je suis une toute nouvelle programmeuse en delphi, je voudrais savoir comment faire pour limiter la saisie dans les cellules de sringgrid aux entiers seulement et afficher un message d'erreur lors de l'affichage de lettres ou autres caracteres.Merci d'avance.

5 réponses

vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
25 oct. 2005 à 12:42
Bonjour,



Le stringgrid a OnSetEditText qui a lieu à chaque fois que l'utilisateur change le contenu d'une cellule.



Pour voir s'il s'agit d'un entier tu peux utiliser la conversion
StrToInt qui te permet de changer un string en entier. Si tu places
cette conversion dans un try except, tu peux vérifier si le contenu de
la cellule est un entier sans créer de plantage.



Voici ce que pourrait donner le code de l'événement :



valeur_entiere_ok := true;

try

valeur_entiere := StrToInt('contenu de la cellule');

except

On EConvertError do valeur_entiere_ok := false;

end;


Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
MimiGMT Messages postés 28 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 24 juillet 2009
25 oct. 2005 à 16:42
Bonjour,

tu peux également tester le key press de la cellule et tu aurais ceci (chaque fois que tu saisis autre chose qu'un nombre bip )

If ((Ord(Key) < 48) or (Ord(Key) > 57)) and (Ord(Key) <>VK_BACK) then
begin
Key := Chr(0);
Messagebeep(MB_ICONEXCLAMATION);
end
end;
0
ville007 Messages postés 16 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 29 septembre 2020
10 nov. 2005 à 22:13
salut
voila la procedure

dans le onkeypress
il faut ajouter le code

begin
if not(key in['0'..'9',#8]) then //pour le #8 c'est la touche supprime
key:=#0;
end;
0
kdel Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 26 septembre 2007
11 nov. 2005 à 20:11
merci beaucoups à vous tous, je veut juste dire que les propositions données par Mrs mimigmt et ville007 ont marché, mais la proposition de Mrs vincentstryckmans a marché seulement pour un seul nombre entier, merci beaucoups de votre aide, j'ai beaucoups d'autre quetions à vous poser alors à la prochaine si dieu le veut, à++++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kdel Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 26 septembre 2007
14 nov. 2005 à 20:44
bonjour Mr ou Mme ville007, j'ai eu un email me prevenant que vous m'avait répondu mais le message etai vide, j'ai rien reçu, merci, à++
0
Rejoignez-nous