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

MFC Discussion :

[MFC]checker me contenu d'un CEdit


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut [MFC]checker me contenu d'un CEdit
    Bonjour! je cherche à checker le contenu de mes CEdit.
    J'ai 2 Edit Box sur ma page et je souhaiterai qu'un message d'erreur s'affiche si la valeur entrée n'est pas du type "xxx" avec xx et xx des heures et minute, et ce dès que l'utilisateur sors du contrôle pour editer le suivant ou cliquer sur un bouton!

    J'ai essayé de chercher dans le forum mais à vrai dire je ne sais pas trop comment on peut appeler ça! Si vou savez des pistes pour mes recherches...

    Merci d'avance...

  2. #2
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut
    J'ai réalisé ceci après avoir crée une fonction OnChangeMoS1() en double cliquant sur mon CEdit:
    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
    void CWorkshiftPropPage::OnChangeMoS1() 
    {
    	// TODO: If this is a RICHEDIT control, the control will not
    	// send this notification unless you override the COlePropertyPage::OnInitDialog()
    	// function and call CRichEditCtrl().SetEventMask()
    	// with the ENM_CHANGE flag ORed into the mask.
     
    	// TODO: Add your control notification handler code here
    	CString Mo(m_MondayStartF1);
    	ASSERT (Mo[0]=='0' || Mo[0]=='1' || Mo[0]=='2' ||
    		     Mo[1]=='0' || Mo[1]=='1' || Mo[1]=='2' || Mo[1]=='3' || Mo[1]=='4' || Mo[1]=='5' || Mo[1]=='6' ||         Mo[1]=='7' || Mo[1]=='8' || Mo[1]=='9' ||
    			  Mo[2]==':' ||
    		     Mo[3]=='0' || Mo[3]=='1' || Mo[3]=='2' || Mo[3]=='3' || Mo[3]=='4' || Mo[3]=='5' || Mo[3]=='6' ||
    			  Mo[4]=='0' || Mo[4]=='1' || Mo[4]=='2' || Mo[4]=='3' || Mo[4]=='4' || Mo[4]=='5' || Mo[4]=='6' ||         Mo[4]=='7' || Mo[4]=='8' || Mo[4]=='9' );
     
    }
    Mais lorsque je lance mon application ça me donne des erreurs d'assertion!
    Ca ne doit pas être la bonne méthode....

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    c'est normal ,tu utilises ASSERT !
    les conditions avec assert sont evaluées uniquement en debug .
    si la condition n'est pas verifiée un message d'assertion apparait..
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    void CWorkshiftPropPage::OnChangeMoS1()
    {
       // TODO: If this is a RICHEDIT control, the control will not
       // send this notification unless you override the  COlePropertyPage::OnInitDialog()
       // function and call CRichEditCtrl().SetEventMask()
       // with the ENM_CHANGE flag ORed into the mask.
        CString str;
    	GetDlgItem(IDC_EDIT3)->GetWindowText(str);
    	str.TrimRight();
     
    	char *stopstring=NULL;
    	long l = strtol( str, &stopstring, 10 );
    	if(l>23)
    	{
    		AfxMessageBox("Heure non valide");
    		return;
    	}
    	if(stopstring && *stopstring && *stopstring!=':')
    	{
    		AfxMessageBox("Format non valide");
    		return;
    	}
    	if(str.GetLength()>3)
    	{
    		stopstring=NULL;
    		l = strtol( str.Mid(3), &stopstring, 10 );
    		if(l>59)
    		{
    			AfxMessageBox("Heure non valide");
    			return;
    		}
    	}
    	if(str.GetLength()>5)
    	{
    		AfxMessageBox("Format non valide");
    		return;
    	}
    }
    je te laisse decider quoi faire en cas d'heure non valide..

  4. #4
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut
    OK je vois!
    Merci beaucoup pour ton aide. Si je comprends bien on utilise jamais ASSERT sauf si on souhaite debugger notre programme!

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par tus01
    OK je vois!
    Merci beaucoup pour ton aide. Si je comprends bien on utilise jamais ASSERT sauf si on souhaite debugger notre programme!
    oui ,assert est reservé au debug .

  6. #6
    Membre confirmé Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par défaut
    C'est une bonne chose à savoir!
    Merci...

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 03/05/2006, 17h06
  2. [MFC][Debutant] Une classe perso de CEdit
    Par kiroukou dans le forum MFC
    Réponses: 6
    Dernier message: 21/06/2005, 15h07
  3. [MFC] aller en bas d'un CEdit
    Par bourinator dans le forum MFC
    Réponses: 5
    Dernier message: 29/06/2004, 13h46
  4. [MFC] Voir le contenu de ma CComboBox !!
    Par Soulsurfer dans le forum MFC
    Réponses: 2
    Dernier message: 09/06/2004, 12h57
  5. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58

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