IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Resteindre les saisies aux touches à valeurs numériques


Sujet :

Langage Delphi

  1. #1
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut Resteindre les saisies aux touches à valeurs numériques
    Bonjour à tous.
    J'ai un TEdit, et je voudrais que les valeurs qui seront saisies soient de type numériques, c'est-à-dire que tous les caractères doivent être compris entre 0 et 9.
    Pour cela, j'ai opté pour une vérification après la saisie. L'utilisateur finit de saisir, et je parcours les caractères pour vérifier si le code ASCII est compris entre ceux de 0 et 9.
    Voici le code que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    function verifieMontant(chaine:String):boolean;
     var i,taille:integer;
     
     begin
      taille:=length(chaine);
      while (i<=taille) and (chaine[i]>=char(48)) and (chaine[i]<=char(57)) do
       begin
        i:=i+1;
        showmessage(inttostr(i));
       end;
     
     if i>=taille then //On a parcouru toute la chaine. Et tout est correct 
      Result:=true
     else
      Result:=false;
    end;
    Mais ça ne marche pas. Il me semble même qu'il ne rentre dans pas le while.

    Merci à tous!

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Voir ICI pour un vérouillage à la saisie

    i n'est pas initialisé, il peut contenir n'importe quelle valeur, il faut faire une affectation à zéro, d'ailleurs, Delphi à probablement mis un conseil de genre "La variable 'I' n'est peut-être pas initialisée"

    Autre info, ces deux syntaxes donne la même chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if i>=taille then //On a parcouru toute la chaine. Et tout est correct 
      Result:=true
     else
      Result:=false;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result:= (i >= taille);//On a parcouru toute la chaine. Et tout est correct
    Sinon, voici la version la plus consise de verifieMontant en Delphi 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function verifieMontant(chaine:String):boolean;
    var
      Value: Integer;
    begin
      Result := TryStrToInt(chaine, Value); // ou ToFloat();
    end;

  3. #3
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Grand Merci à toi!
    Tout est ok.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. selectionner seulement les cellules ayant une valeurs numérique
    Par Julaxio dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/06/2011, 08h50
  2. Réponses: 8
    Dernier message: 10/03/2009, 12h22
  3. Réponses: 4
    Dernier message: 17/01/2008, 07h36
  4. les valeurs numérique
    Par amazircool dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/05/2007, 09h49
  5. [débutant] valeur numérique dans zone de saisie
    Par Anthony17 dans le forum Delphi
    Réponses: 2
    Dernier message: 31/05/2006, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo