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

C++Builder Discussion :

Vérifier la cohérence d'un EditMask


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut Vérifier la cohérence d'un EditMask
    bonjour, je souhaite faire proceder la saisie d'une heure dans mon programme
    j'ai mis le masque 00h00;1;

    je souhaite interdire des heures >23 et des minutes >59 est t'il possible de tester les champs independament ?

    ou faut t'il faire une "moulinette" en testant avant le "h" et 2 caracteres apres le "h" ?

    et comment générer un message d'erreur personalisée de l'exeption EDBEditError ?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Par défaut
    Bonjour Marie56556,

    Voici une solution traitant la saisie du masque heure :
    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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      //conversion en entier
     int heure = StrToInt(MaskEdit1->Text);
     if(heure >23)
     {
      ShowMessage("valeur maximale autorisé 23");
      //efface le champ de saisie
      MaskEdit1->Clear();
      //donne le focus au champ de saisie erroné 
      MaskEdit1->SetFocus();
      //positionne le curseur en 1°postion
      MaskEdit1->SelStart = 0;
    }
    Fais de même pour les minutes...
    Il existe dans la propriété d'un MaskEdit1, un masque tout fait pour les heures et les minutes. Mais au moment des conversions en Int, je n'arrive pas à oter le masque de saisie("23:45"). Les ":" crée une erreur...

    Bon courage...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    J'ai testé cette methode mais cela ne conviens pas car l'edit mask ne contient pas de valeur entiere puisse qu'il ya le : ou le h dans mon cas

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    je m'en suis sortie avec cette moulinette

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    //conversion en entier
     int heure;
     int minute;
     AnsiString Buff="";
     
            for(int i=1;i<3;i++)
            {
            Buff= Buff+EditAD->Text[i];
            heure= StrToInt(Buff.c_str());
            if(heure >23)
             {
             ShowMessage("valeur maximale autorisé 23, vous avez rentré : "+Buff+ "!");
     
             }
            }
     
     
            Buff="";
     
            for(int i=4;i<6;i++)
            {
            Buff= Buff+EditAD->Text[i];
            minute= StrToInt(Buff.c_str());
            if(minute >59)
             {
              ShowMessage("valeur maximale autorisé 59, vous avez rentré : "+Buff+ "!");
             }
     
            }
    si il ya plus simple n'hesitez a proposer

  5. #5
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Peut être qqchose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String gTexte = MaskEdit1->Text.SubString(0, 2);
    String dTexte = MaskEdit1->Text.SubString(4, 2);
    if (StrToInt(gTexte) > 23 || StrToInt(dTexte) > 59)
    {
    	MessageDlg("Erreur de saisie !", mtError, TMsgDlgButtons() << mbOK, 0);
    }
    @ +

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    Super ! cela fonctionne tres bien et c'est super simple
    Merci

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

Discussions similaires

  1. Comment vérifier si Excel est installé ?
    Par mathieutlse dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 16/08/2017, 18h49
  2. [KSH] Vérifier cohérence entre deux fichiers
    Par AlhambraCaim dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 16/06/2015, 13h44
  3. Réponses: 3
    Dernier message: 08/10/2008, 16h34
  4. [Jsp]Vérifier le nombre de connections
    Par antigone dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 21/08/2003, 10h56
  5. Réponses: 2
    Dernier message: 18/12/2002, 10h30

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