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 :

Tedit et les valeurs numériques


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Tedit et les valeurs numériques
    Bonjour tout le monde,
    je dispose d'un edit1 et d'un button1.
    dans le champ edit1 on doit saisir un nombre , et lorsqu'on clique sur le button1 on déclanche une procédure qui a comme paramètre la valeur numérique de edit1.
    est-ce qu'il existe une fonction qui me permet de savoir si la valeur contenu dans dans le edit1 est numérique ou non (car dans le cas ou c'est on la procédure Tbuttonclick doit retourner un showmessage ('erreur- valeur non numérique ) par exemple.
    merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Tu disposes pour cela des fonctions TryStrToXXX (TryStrToInt, TryStrToInt64, TryStrToFloat, etc...) qui convertissent la chaine de caractères et renvoie un boolean t'informant du succès ou non de la conversion.

    @+ Claudius

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 711
    Points : 5 333
    Points
    5 333
    Par défaut
    Sinon tu peux utiliser un SpinEdit ou bien filtrer les caractères pour n'accepter que des chiffres

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Salut

    Tu disposes pour cela des fonctions TryStrToXXX (TryStrToInt, TryStrToInt64, TryStrToFloat, etc...) qui convertissent la chaine de caractères et renvoie un boolean t'informant du succès ou non de la conversion.

    @+ Claudius
    le trystrtoxxx est assez interessant mais moi j'utilise dephi 5.
    cette fonction je ne la trouve pas

  5. #5
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Form1Create(Sender: TObject);
    begin
      SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Avec Delphi 5 tu dois disposer de la méthode Val

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
      MyValue, E: Integer;
    begin
      Val(Edit1.Text, MyValue, E);
      if E <> 0 then
        ShowMessage('Valeur incorrecte.')
      else
      begin
        // ... la suite
      end;
    end;
    Sinon tu gères le StrToInt dans un bloc try except end.

    @+ Claudius

  7. #7
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Re,

    Avec Delphi 5 tu dois disposer de la méthode Val

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
      MyValue, E: Integer;
    begin
      Val(Edit1.Text, MyValue, E);
      if E <> 0 then
        ShowMessage('Valeur incorrecte.')
      else
      begin
        // ... la suite
      end;
    end;
    Sinon tu gères le StrToInt dans un bloc try except end.

    @+ Claudius

    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function TryStrToInt(const S: string; var V: LongInt): boolean;
    var E: LongInt;
    begin
      Val(S, V, E);
      result := E = 0;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    @informatik2010

    Tu as donc le choix, enfin si tu dois traiter une valeur entière. (Avec une préférence pour SetWindowLong).

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Re,

    Avec Delphi 5 tu dois disposer de la méthode Val

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
      MyValue, E: Integer;
    begin
      Val(Edit1.Text, MyValue, E);
      if E <> 0 then
        ShowMessage('Valeur incorrecte.')
      else
      begin
        // ... la suite
      end;
    end;
    Sinon tu gères le StrToInt dans un bloc try except end.

    @+ Claudius
    j'ai opté en fin du compte pour la fonction VAL.
    mais pour un Extended au lieu de integer pour Myvalue ,car je traite et des entiers et des réels.

    merci tout le monde et surtout Claudius

  10. #10
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Citation Envoyé par Cl@udius
    Sinon tu gères le StrToInt dans un bloc try except end.
    SrtTointDef

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

Discussions similaires

  1. [AC-2003] Pb de table liée .csv , les valeurs numériques sup à 1000 = #nombre
    Par gandalf20000000 dans le forum Modélisation
    Réponses: 5
    Dernier message: 25/11/2009, 11h43
  2. Réponses: 1
    Dernier message: 16/01/2009, 05h41
  3. Les valeurs numériques sont affichées sans la virgule
    Par jean sami dans le forum Débuter
    Réponses: 3
    Dernier message: 16/09/2008, 17h28
  4. sélectionner que les valeurs numériques
    Par cyberboy00 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2008, 15h42
  5. les valeurs numérique
    Par amazircool dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/05/2007, 09h49

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