VERIFIER SI LE CONTENU D'UN TEDIT EST UN NOMBRE ENTIER [Résolu]

yvescollet 56 Messages postés mardi 26 août 2003Date d'inscription 22 janvier 2006 Dernière intervention - 22 sept. 2004 à 10:37 - Dernière réponse : nn2009 14 Messages postés dimanche 31 mai 2009Date d'inscription 14 novembre 2011 Dernière intervention
- 1 juin 2009 à 10:20
j'aimerais savoir comment on peut controler que la saisie dans un TEdit soit bien un nombre entier? (donc pas de caractères, juste une suite de chiffres).

Merci d'avance
Afficher la suite 

Votre réponse

6 réponses

Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 22 sept. 2004 à 12:08
+3
Utile
salut yvescollet,

il te suffit de filtrer la saisie de ton TEdit dans le OnKeyPress.

procedure TWndBanderoleuse.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  // #8 permet la suppresion du dernier caractère.
  case Key of
    '0'..'9', #8 :;
    else
      Key := #0;
  end;
end;


Bonne Prog,

Olivier.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Loulibier
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 31 mai 2009 à 18:55
+1
Utile
et si je fais "clic droit" "coller" avec le texte "gotchaaaa" ça donne quoi votre code ? n'ayant rien tapé au clavier ... cet evènement ne va jamais se déclencher ...

Il suffirait de faire (sur le OnExit par exemple) :
if (StrToIntDef(Edit1.Text, MaxInt)) = MaxInt then
begin
  Showmessage('Erreur, le champ ne doit contenir que des chiffres !');
  Edit1.Clear;
end;

a+
Commenter la réponse de JulioDelphi
lelahel08 36 Messages postés dimanche 10 août 2003Date d'inscription 24 octobre 2005 Dernière intervention - 22 sept. 2004 à 11:22
0
Utile
Pour un TEdit simple verifier avec la methode OnChange du TEdit

Sinon verifier quand tu veux effectuer l'action qui a besoin de cet entier

Sinon utiliser un MaskEdit pour s'assurer de la sisie d'un entier
Commenter la réponse de lelahel08
koaiz 49 Messages postés samedi 26 avril 2003Date d'inscription 8 août 2009 Dernière intervention - 22 sept. 2004 à 23:42
0
Utile
Hug Visage pal yvescollet

Tu peut aussi utiliser la methode suivante

la varriable CODE donne le resultat 0 pour un entier et un resultat different pour les autre carractere.

procedure TForm1.Button1Click(Sender: TObject);
Var X,Code :Integer;
begin
Val(Edit1.Text,X,Code);
If Code=0 Then Showmessage('C''est un entier') Else
Showmessage('erreur');
end;


que la paix soit avec vous
Commenter la réponse de koaiz
nn2009 14 Messages postés dimanche 31 mai 2009Date d'inscription 14 novembre 2011 Dernière intervention - 31 mai 2009 à 18:48
0
Utile
essyer ceci
procedure TModifier_Patient.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', Chr(VK_BACK), Chr(VK_DELETE)])            or (Key DecimalSeparator) or ( Key '.') then
Key := #0;
end

vous ne pouvez saisir que des chiffre de 0 à 9
bonne chance
Commenter la réponse de nn2009
nn2009 14 Messages postés dimanche 31 mai 2009Date d'inscription 14 novembre 2011 Dernière intervention - 1 juin 2009 à 10:20
0
Utile
Merci JulioDelphiton code a bien fonctionner avec le mien
Merci encore.
t'as pas une idée comment filtrer une table avec un edit qui ne doit contenir que des chiffres.
j'ai utiliser ce code mais ça n'a pas marché
Adotable1.Filtered:=false;
if edit1.Text ='' then exit;
AdoTable1.Filter := 'inttostr(Code_Patient) LIKE ('+''''+edit1.Text+'%'+''''+')';
AdoTable1.filtered := True;

je veut filtrer ma table au fur et à mesure que je tapes le code patient qui est un entier ! ?
any help will be great from you
Commenter la réponse de nn2009

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.