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] passage d'un CEdit à une fonction


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut [MFC] passage d'un CEdit à une fonction
    Bonjour,
    j'ai créé une fonction ds laquelle je veux passer un CEdit.
    Quand je compile j'ai alors l'erreur suivante ;
    inpossible de convertir le paramètre 3 de 'CEdit' en 'CEdit'
    pourquoi ?

    Merci

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    euh tu peux me montrer la ligne de l'erreur ?

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    parce qu'il y a une erreur quelque part. sans plus d'indication (pti bout de code, message d'erreur exact ), peut pas grand chose.

    vérifier la signature de tes fonctions, ce que tu leur passes en argument.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    Dans DlgRegalges.cpp

    fonction de mon probleme précédent :

    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
     
    void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit edit)
    {
     char *stopstring = "0";
     
     UpdateData(true) ;
     strtod(Seuil_PenteTQ,&stopstring) ;
     if(stopstring[0] == '\0')
     {
      TempSeuil_PenteTQ = Seuil_PenteTQ ;
     }
     else
     {
      Seuil_PenteTQ = TempSeuil_PenteTQ ;
      UpdateData(false) ;
      edit.PostMessage(WM_KEYDOWN,VK_END,0); 
     }
    }
    appel de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,Edit13) ;
    dans DlgReglages.h
    le prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit edit) ;

  5. #5
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    dit question idiote mais Edit13 c'est pas une variable memebre de ta classe ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    j'ai déclaré Edit13 dans DlgReglages.h : CEdit Edit13 ;

  7. #7
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    est ce que cette fonction va etre appelée avec plusieurs CEdit ou juste celui la ?
    c'est quoi le message d'erreur exact !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    avec plusieurs Edit justement c'est pour ca que je le passe en param.
    Le message d'erreur :

    d:\xxx\cximage599c_lite\demo3\DlgReglages.cpp(249): error C2664: 'CDlgReglages::ChangeEdit' : impossible de convertir le paramètre 3 de 'CEdit' en 'CEdit'

  9. #9
    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
    passe une référence ou un pointeur de CEdit.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    Désolé mais j'ai du mal avec les pointeurs, comment je dois faire ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    alors, personne pour m'aider ?

  12. #12
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    est ce que tu as appris à faire du C++ ou du C ? les pointeurs sont la base de ces langages. Vas voir ici

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    Jai remplacé :
    void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit edit)
    par :
    void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit *edit)

    ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,Edit13) ;
    par :
    ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,*Edit13) ;

    afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit edit) ;
    par :
    afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit *edit) ;

    mais toujours la même erreur

  14. #14
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    supprime le afx_msg voir !

  15. #15
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,*Edit13) ;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,&Edit13) ;

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    si je supprime le afx_msg, a la compilation il me dit que ma fonction n'est pas membre de la classe en question.

    Sinon pour le changement de *Edit13 en &Edit13, il me dit :
    d:\xxxx\cximage599c_lite\demo3\DlgReglages.cpp(249): error C2664: 'CDlgReglages::ChangeEdit' : impossible de convertir le paramètre 3 de 'CEdit ** ' en 'CEdit'

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    J'ai essayé, pas d'erreur à la compilation mais le code n'a aucun effet :

    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
     
    void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit *Edit)
    {
     char *stopstring = "0";
     
     Edit->UpdateData(true) ;
     strtod(Chaine,&stopstring) ; 
     if(stopstring[0] == '\0')
     {
      TempChaine = Chaine ;
     }
     else
     {
      Chaine = TempChaine ;
      Edit->UpdateData(false) ;
      Edit->PostMessage(WM_KEYDOWN,VK_END,0);
     }
    }
    Appel de la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ChangeEdit(Seuil_PenteTQ, TempSeuil_PenteTQ, &Edit13) ;
    Si quelqu'un pouvait m'aider ca serait sympa....

    Merci

  18. #18
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Ecoute dans ta classe tu as
    et tu gardes dans ta classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void ChangeEdit(CString Chaine, CString TempChaine, CEdit *Edit);
    et tu appelles ta méthode comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ChangeEdit(Seuil_PenteTQ, TempSeuil_PenteTQ, &Edit13) ;
    Vérifie bien tes syntaxes

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Par défaut
    Gabrielly, j'ai fait ce que tu as dit (je vois pas la différence avec mon post qui précède le tien ). A la compilation tout ce passe bien mais ma méthode n'a aucun effet.

  20. #20
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    est ce que en debuggant tu arrives à ta fonction déja ?!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/03/2006, 12h19
  2. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  3. Réponses: 6
    Dernier message: 24/12/2004, 16h46
  4. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20
  5. [langage] passage de paramètres à une fonction
    Par BARBIER dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 15h46

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