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

 Delphi Discussion :

comparaisant d'un tedit dans un intervalle


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Points : 50
    Points
    50
    Par défaut comparaisant d'un tedit dans un intervalle
    Bonsoir
    j'ai un tedit et je veux controle le saisie pour qu'il doit contenir un réel séparé par des virgules.
    J'ai fait le suivant, mais il ya une erreur :

    var i:integer;
    begin
    for i:=1 to length(edit5.Text)do
    begin
    if (strtoint(edit5.Text[i])<>[0..9] or edit5.Text[i]<>',') then showmessage('le nombre doit être un nombre réel séparé par des virgules');
    end;

    c'est quoi l'erreur je parvient pas à la corrigé

  2. #2
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    Si tu veux simplement tester si la valeur saisie peut être convertie en réel, alors regarde du côté de la fonction StrToFloat

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    vous avez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i:=1 to length(edit5.Text)do
    begin
    if (strtoint(edit5.Text[i])<>[0..9] or edit5.Text[i]<>',') then showmessage('le nombre doit être un nombre réel séparé par des virgules');
    si Edit5.Text = 'ABCD'

    si I = 1
    Edit5.text[I] = 'A'
    donc StrToInt(Edit5.Text[I]) = StrToInt['A'] = erreur

    Ceci dit, ce nes pas une méthode très pratique.

    Essayer plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Value := IntToStrFloat(Edit5.text, 0);
    if Value = 0 then begin
      Value :=  IntToStrFloat(Edit5.text, 1);
      if Value = 1 then ---> erreure
    end;
    pour savoir si vous avez un numérique.
    apres vous pouvez transformer l'éventuelle decimalseparator (. ou , suivant le langage de l'ordinateur) par une virgule (en utilisant ansiReplaceStr)

    Vous pouvez aussi tester la valeur dans Edit5 lors que vous entrer une valeur (événement onchange)

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Points : 50
    Points
    50
    Par défaut
    Merci pour vos réponse
    ce que je veux savoir c'est que quand je fait "edit5.Text[long] in ['0'..'9']" c'est bon pas de pbm, mais quand je veux dire n'appartient pas j'essai de faire
    "edit5.Text[long] not in ['0'..'9']" il ya un pbm.
    Merci d'avance

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    est-ce que ça marcherait :
    If not (Edit5.Text[long] in ['0'..'9'] )

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Points : 50
    Points
    50
    Par défaut
    Oui merci ça marche, merci.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Content de t'avoir aidé^^
    Mais clique sur Résolu

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/07/2006, 10h29
  2. Réponses: 16
    Dernier message: 03/03/2006, 20h15
  3. valeur contenue dans un intervalle
    Par javaSudOuest dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/12/2005, 15h12
  4. slection dans une intervalle d'enregistrement
    Par toome dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/08/2005, 15h17
  5. Réponses: 7
    Dernier message: 02/06/2003, 08h38

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