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 :

Mise a jour des Edit Box !!


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour des Edit Box !!
    Salut j'ai une application avec interface 'MFC CFormView' ou j'ai des EditBox&CCOmboBox qui ont des valeurs initiales par default.
    Ensuite je peux directement taper la nouvelle valeur dans l'EditBox ou bien j'utilise une fonction mise en route par un Button qui calcule les valeurs.
    C'est la qu'est le probleme, les valeurs sont calculee, puis affecte correctement aux variables associees aux Controles EditBox et la fonction UpdateData(FALSE) ne mets pas a jour l'EditBox associees aux variables.
    Si je ferme mon fichier, et que je le reouvre les bonnes valeurs sont enfin affiche ? ?
    Le truc c'est que les CComboBox sont bien mises a jour elles donc pige pas??
    La procedure est la:
    1. EditBox&CComboBox ont des valeurs par default
    2. Ouverture de l'interface, la fonction OnInitialUpdate mets les valeurs par defaults dans les EditBox et CComboBox
    3. Une fonction interne declenche par button calcule les valeurs a mettre a jour dans les EditBox et CComboBox
    4. J'affecte les nouvelles valeurs aux variables associee aux controles EditBox&CComboBox, j'utilise UpdateData(FALSE)
    5. Les CComboBox sont mises a jour, pas les EditBox ???? MERCI

  2. #2
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    si les edits box ne sont pas a jour c'est qu'il y a un probleme sur la fonction DoDataExchange
    La liaison entre contrôles et variables doit être incorrecte.
    sinon il n'y a pas de raison .
    sauf si tu penses mettre a jour tes variables et que la valeur n'a pas changé...

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour de Edits Box !!
    Salut ,
    J'ai bien regarder les variables associe aux controles EditBox et elles sont bien modifier a l'appel de ma fonction...le truc c'est que la fonction DoDataExchange est correcte puisque quand j'enregistre mon fichier (par serialisation) et que je le reouvre les valeurs mises a jour avant la fermeture sont afficher.

    Merci beaucoup !!!

  4. #4
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    voila le résonnement :
    - la mise a jour des controles pas UpdateData(FALSE) fonctionne c'est une certitude.
    - ta fonction DodatExchange est correcte puisqu'elle fonctionne avec la serialisation.
    - si le UpDateData à un moment donné ne produit pas l'effet escompté .
    c'est qu'il y a un effet de bord:
    par exemple un autre UpdateData(TRUE); declenché par un evenement.
    et donc ecrasant les nouvelles valeurs des autres contrôles ...

    je verrais bien comme ça un UpdateData(TRUE); dans un message OnChange lié a la combobox...
    il suffirait pour résoudre le probleme de changer l'ordre d'affection:
    mettre la maj de la combobox en dernier.

    la régle: ne pas mettre un UpadeData(TRUE) dans un message qui sera declenché par un UpdateData(FALSE) sous peine d'ecrasement de valeurs.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour d'EditBox
    Salut et encore merci,

    une ptit question, c'est quoi la Maj de combobox??
    sinon je voit vraiment pas le probleme??

  6. #6
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    et bien quand tu fais un UpdateData(FALSE) tu mets bien a jour la CCombobox Non ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour des EditBox !
    Ok Maj=mise a jour!!
    Mais rien n'a change pour les EditBox. Pour information, dans mon programme j'ai donc 2 methodes pour mettre a jour les EditBox&CcomboBox:
    1. Soit avec la fonction EN_CHANGE du ClassWizard, dans laquelle je fait un UpdateData(TRUE) ensuite je fait un appel a une fonction permettant d'enregistrer les valeurs saisies dans des variables internes pour le fichier generer a la sauvegarde (par serialisation),
    2. Soit je mets a jour la variable correspondant au controle par une fonction de calcul, puis je fait un UpdateData(FALSE), et c'est dans ce cas que seulement le CcomboBox sont mises a jour, les Edit Box reste rempli avec les meme valeurs! ? !!
    vOILA

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour des EditBox !
    Ok Maj=mise a jour!!
    Mais rien n'a change pour les EditBox. Pour information, dans mon programme j'ai donc 2 methodes pour mettre a jour les EditBox&CcomboBox:
    1. Soit avec la fonction EN_CHANGE du ClassWizard, dans laquelle je fait un UpdateData(TRUE) ensuite je fait un appel a une fonction permettant d'enregistrer les valeurs saisies dans des variables internes pour le fichier generer a la sauvegarde (par serialisation),
    2. Soit je mets a jour la variable correspondant au controle par une fonction de calcul, puis je fait un UpdateData(FALSE), et c'est dans ce cas que seulement le CcomboBox sont mises a jour, les Edit Box reste rempli avec les meme valeurs! ? !!
    vOILA encore

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour des EditBox !
    Ok Maj=mise a jour!!
    Mais rien n'a change pour les EditBox. Pour information, dans mon programme j'ai donc 2 methodes pour mettre a jour les EditBox&CcomboBox:
    1. Soit avec la fonction EN_CHANGE du ClassWizard, dans laquelle je fait un UpdateData(TRUE) ensuite je fait un appel a une fonction permettant d'enregistrer les valeurs saisies dans des variables internes pour le fichier generer a la sauvegarde (par serialisation),
    2. Soit je mets a jour la variable correspondant au controle par une fonction de calcul, puis je fait un UpdateData(FALSE), et c'est dans ce cas que seulement le CcomboBox sont mises a jour, les Edit Box reste rempli avec les meme valeurs! ? !!
    vOILA encore merci

  10. #10
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par pinto_armindo
    Ok Maj=mise a jour!!
    Mais rien n'a change pour les EditBox. Pour information, dans mon programme j'ai donc 2 methodes pour mettre a jour les EditBox&CcomboBox:
    1. Soit avec la fonction EN_CHANGE du ClassWizard, dans laquelle je fait un UpdateData(TRUE) ensuite je fait un appel a une fonction permettant d'enregistrer les valeurs saisies dans des variables internes pour le fichier generer a la sauvegarde (par serialisation),
    2. Soit je mets a jour la variable correspondant au controle par une fonction de calcul, puis je fait un UpdateData(FALSE), et c'est dans ce cas que seulement le CcomboBox sont mises a jour, les Edit Box reste rempli avec les meme valeurs! ? !!
    vOILA encore merci
    et bien si tu relis ce que j'ai dis c'est exactement le probleme !
    tu as un updateData dans un message EN_Change.
    quand UpdateData(FALSE) va etre fait le premier edit qui va etre mis a jour va générer le message EN_CHANGE ,faire un UpdateData (TRUE) et donc ecraser les valeurs des autres controles avant qu'ils soient mis à jour ...

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Mise a jour des EditBox!
    En fait le UpdateData(FALSE) ne vient jamais activer les fonctions cree par ClassWizard que voici :
    Pour detecter le changement d'une CcomboBox==

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void CPropPage2::OnSelchangeBBPLLScaleNotch() 
    {
     CFrameWnd * pFrame = GetParentFrame();
     CMyFormView* pView = (CMyFormView*)pFrame->GetActiveView(); 
     UpdateData(TRUE);
     pView->f_ViewToBinary();
    }
    
    Pour detecter le changement d'une EditBox==
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void CPropPage2::OnChangeBbpllKsel() 
    {
     CFrameWnd * pFrame = GetParentFrame();
     CMyFormView* pView = (CMyFormView*)pFrame->GetActiveView(); 
     UpdateData(TRUE);
     pView->f_ViewToBinary();
    }
    
    Donc l'ecrasement de variables dont tu me parle n'a pas lieu puisque je ne fais pas d'UpdateData(TRUE) de mes variables d'EditBox je les mets a jour dans le programme avec une fonction...
    Vraiment c'est frustrant....a plus
    Merci de mettre la balise pour le code ,Farscape

Discussions similaires

  1. mise a jour des colones avec smo
    Par casimir24 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/12/2005, 15h13
  2. [LG]Mise à jour des enregistrements d'un file of char.
    Par jpclabaux dans le forum Langage
    Réponses: 5
    Dernier message: 28/10/2004, 14h28
  3. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46
  4. Mises à jour des paquetages en mode console
    Par Memnoch31 dans le forum Debian
    Réponses: 6
    Dernier message: 16/05/2004, 16h30
  5. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34

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