Publicité
+ Répondre à la discussion
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 31
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut Récupérer une valeur à partir de la souris dans un ListCtrl

    Bonjour à tous, je suis actuellement en stage pour développer un logiciel utilisant les wxwidgets.
    Voici donc une de mes questions :

    J'ai créé un ListCtrl dans une classe :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
      InsertColumn(0,_("Numéro du puits"),wxLIST_FORMAT_CENTER,150);
      InsertColumn(1,_("Durée de l'analyse"),wxLIST_FORMAT_CENTER,150);
      InsertColumn(2,_("Temps"),wxLIST_FORMAT_CENTER,100);
      InsertColumn(3,_("Valeur"),wxLIST_FORMAT_CENTER,100);
      InsertColumn(4,_("Dérivée première"),wxLIST_FORMAT_CENTER,200);
      InsertColumn(5,_("Dérivée seconde"),wxLIST_FORMAT_CENTER,200);
      InsertColumn(6,_("Température"),wxLIST_FORMAT_CENTER,100);
    L'ouverture d'un onglet va ajouter une ligne dans ma liste

    Code :
    1
    2
    3
     
          listeStats->InsertItem(0,numeroPuits);
          listeStats->SetItem(donnees,6,temperature);
    Maintenant j'aimerai que lorsque je clique sur une ligne, il m'affiche l'onglet correspondant aux données de la ligne, sur le numéro du puits. Mon premier problème se situe pour récupérer la valeur d'un item, pour le moment j'ai cela :

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    void LysisTimerFrame::OnSelectionListe(wxListEvent& event)
    {
      wxString contenuCellule;
      obtenirDonnees(1,0,contenuCellule);
      wxMessageBox(_("Numéro du puits sélectionné :") +contenuCellule);
    }
    Avec pour la méthode obtenirDonnees( numéro de ligne, numéro de colonne, et les données). Seulement là,j'aurai à chaque double clic sur la liste, l'item correspondant à la 2e ligne. Comment faire, pour changer cette valeur de façon dynamique, avec un évenement souris qui passerait le paramètre de la ligne sélectionnée ?

    Merci d'avance

  2. #2
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    Salut.

    Si tu veux gérer le double-clic, il faut passer par l'événement "EVT_LIST_ITEM_ACTIVATED".
    Ça évitera d'avoir a gérer la sélection ou la dé-sélection en même temps.

    Ensuite, il te suffit de récupérer l'index de l'élément concerné avec "wxListEvent::GetIndex()" et le tour est joué :
    Code :
    1
    2
    3
    4
    5
    6
    void LysisTimerFrame::OnSelectionListe(wxListEvent& event)
    {
      wxString contenuCellule;
      obtenirDonnees(event.GetIndex(),0,contenuCellule);
      wxMessageBox(_("Numéro du puits sélectionné :") +contenuCellule);
    }
    @+
    Xav'

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    C'est bien l'évenement que j'ai utilisé, merci, je ne connaissais pas la fonction GetIndex, et là ca marche nickel

    Du coup, une autre question ( rassure toi, je ne vais pas te demander de faire le projet à ma place, mais au bout de 2 jours de recherches, je laisse un peu tomber), j'ai donc mes onglets qui sont ouverts et en cliquant sur une ligne, je voudrai que l'onglet correspondant au numéro du puits s'affiche. J'ai déjà codé en gros ca :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    void LysisTimerFrame::CreationOnglet()
    {
        onglet *creationOnglet = new onglet(this);
        creationOnglet->nomPage.Append(_(",puits: "));
        creationOnglet->nomPage.Append(numeroPuits);
        premierePage->AddPage(creationOnglet,creationOnglet->nomPage,true);
    }
    et dans ma classe d'onglet :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void onglet::createControls()
    {
      static int numeroPage = 1;
      wxString numPage = wxString::Format(wxT("%i"),(int)numeroPage);
      nomPage = _("Fichier ");
      nomPage.Append(numPage);
     
      numeroPage += 1;
     
    }
    Mais dans tout ca, je ne pense pas avoir utilisé une variable pour identifier un onglet spécifique ayant un lien avec un numéro de puits, du style que le 2e onglet ouvert sera correspondant à la 2e ligne dans mon textctrl.

    Code :
    1
    2
    3
     
          listeStats->InsertItem(donnes,0,numeroPuits);
          listeStats->SetItem(donnees,6,temperature);
    Merci encore

    EDIT : c'est bon j'ai trouvé, j'ai rajouté une colonne "index" pour trouver le numéro de l'onglet, et utilise SetSelection(), maintenant je m'attaque à la suppression d'une ligne dans le listCtrl lors de la fermeture de l'onglet correspondant...

  4. #4
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Du coup je comprends pas trop la documentation des évenements de l'auinotebook :

    EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn):

    winid représente quoi ? car j'utilise des panel pour créer des onglets, je vois pas trop comment intercepter l'évenement et aussi je saisi pas la signification de "fn".
    Jusqu'à maintenant j'avais que des macros du style (id,func)

  5. #5
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    Pour être franc, je n'ai jamais utilisé les wxAui.

    Malgré tout, il ne me semble pas voir, dans la macro que tu présentes, une grand différence par rapport aux macros des autres contrôles "normaux", mis à part les noms des paramètres :

    EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn) :
    • winid correspond à l'id du contrôle wxAuiNotebook
    • fn correspond à la fonction à appeler quand cet événement est rencontré


    C'est à mon avis une simple erreur de suivi des conventions dans les noms des paramètres.

    @+
    Xav'

  6. #6
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Je suis parti de ce principe, mais je suis un peu perdu...

    Je veux créer plusieurs onglets, je fais appel à mon constructeur onglet qui dérive de wxPanel et je définis à chaque onglet un id et je l'affiche :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    void LysisTimerFrame::CreationOnglet()
    {
     
        static int idOnglet = 0;
     
        onglet *creationOnglet = new onglet(this);
     
        wxString valeurid;
     
        creationOnglet->SetId(idOnglet);
        int valeur = creationOnglet->GetId();
        valeurid << valeur;
     
        creationOnglet->nomPage.Append(_(",puits: "));
        creationOnglet->nomPage.Append(numeroPuits);
        premierePage->AddPage(creationOnglet,creationOnglet->nomPage,true);
        idOnglet +=1;
        wxMessageBox(_("Numéro de l'id :" + valeurid));
    }
    Du coup j'ai déclaré dans mon .h

    Code :
    1
    2
    3
    4
    5
     
    enum
    {
       idOnglet
    }
    et dans ma table d'événements :

    Code :
    1
    2
     
    EVT_AUINOTEBOOK_PAGE_CLOSED(idOnglet, LysisTimerFrame::OnFermerOnglet)
    Je dois pas être sur la bonne piste, car je ne fais jamais appel à mon évenement PAGE_CLOSED lors de la fermeture d'un onglet

  7. #7
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    En fait, il ne s'agit pas de l'id de l'onglet, mais de celui du notebook.

    Et avec le paramètre wxAuiNotebookEvent, tu pourras récupérer l'index de la nouvelle page sélectionnée ( GetSelection() ), et éventuellement celui qui était sélectionné avant le changement ( GetOldSelection() ) si tu as besoin d'annuler l'événement.

  8. #8
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Ok, forcément ca pouvait pas marcher.
    Voilà comment je l'utilise :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    void LysisTimerFrame::OnFermerOnglet(wxAuiNotebookEvent& event)
    {
      int valeurInt = premierePage->GetSelection();
      wxString valeur;
      valeur << valeurInt;
      wxMessageBox(_("Fermeture de l'onglet: ") + valeur);
    }
    premierePage est mon notebook.
    Ici, j'ai bien la capture de l'évenement, seulement getSelection me renvoie l'emplacement de l'onglet dans le sizer, donc le 1er onglet à une valeur de -1, le deuxième de 0 et le plus à droite aura la valeur max. Quand je ferme un onglet, l'onglet de droite prendra la valeur de celui qui a été fermé, ce qui fausse un peu la donne.
    2 semaines que les widgets sont entrés dans ma vie, et ca fait mal...

    EDIT : en fait c'est plus compliqué que ça. En soit, ce problème n'en est pas un. Le plus embêtant et que si je supprime un onglet ainsi que la ligne, et que j'ai un ID pour un onglet d'une valeur = 4 par exemple, et que je n'ai plus que 3 onglets d'ouverts, si je clique sur la listctrl de l'onglet à la valeur 4, il ne me trouvera pas l'onget même s'il est ouvert.
    Bref, je ne t'embête pas plus longtemps, ca me semble tordu, je vais essayer de voir ca, merci pour ton aide, je reviendrai bien assez tôt

  9. #9
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    En fait, je verrai plus quelque chose comme :
    Code :
    1
    2
    3
    4
    5
    6
     
    void LysisTimerFrame::OnFermerOnglet(wxAuiNotebookEvent& event)
    {
      int valeurInt = event.GetSelection();
      ......
    }
    Je ne suis pas certain que tu puisses récupérer l'index de l'onglet concerné.
    Si jamais, tu peux peut-être passer par l'événement "EVT_AUINOTEBOOK_PAGE_CLOSE" plutôt que "EVT_AUINOTEBOOK_PAGE_CLOSED" (c'est juste une piste de recherche que je te donne, pas une solution).

    Tu peux éventuellement ajouter une valeur "ClientData" aux éléments de ton wxListCtrl afin de pouvoir stocker un état "Onglet ouvert/fermé".

    @+
    Xav'

  10. #10
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Après quelques essais infructueux, on m'a dit que la solution est de faire passer un paramètre à ma fonction de création d'onglet. Donc pour chaque onglet créé, je définit un numéro d'index. Puis ensuite lorsque je clique dans ma liste de contrôle, il faut que je fasse une boucle for qui va me passer les onglets ouverts et comparer la valeur que je lui ai donné dans ma liste de contrôle. Si la comparaison est bonne, ca retournera l'onglet...

    Après l'écrire c'est autre chose

    EDIT: voilà y a du neuf :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    for (i=0;i < notebook->GetPageCount(); i++)
      {
      if (((classe*)notebook->GetPage(i))->index==indexCellule)
          {
            notebook->SetSelection(i);
     
          }
      }
    Merci Xav pour ta contribution

  11. #11
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    J'ai encore des soucis, mais il est complétement différent celui là :

    J'ai créer des textctrl pour que l'utilisateur remplisse les différentes informations d'une personne dans un wxDialog, puis je récupère les infos dans ma Frame principale. J'ai donc créé une structure comportant mes variables.

    Si je créé plusieurs personnes, comment éviter la perte des données des autres personnes et aussi comment pourrais je accéder aux infos d'une personne particulière.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    struct t_patientInformations
        {
          wxString uuidPatient;
          wxString IdentifiantPatient;
          wxString Nom;
          wxString Prenom;
          wxString dateNaissance;
          char Sexe;
        };
     
    struct t_patientInformations patient;
          patient.uuidPatient = numeroIndex;
          patient.IdentifiantPatient = boiteChoixPuits->m_idPatient->GetValue();

  12. #12
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    Hello

    J'avoue ne pas trop comprendre quel est ton problème.
    Peux-tu être plus précis, stp.

    @+
    Xav'

  13. #13
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Je dois créer une base de données de patients. Par analogie avec des dossiers médicaux, je souhaite faire une structure renseignant nom prenom sexe... sur chaque patient que l'utilisateur va entrer via un formulaire.

    J'ai donc créé ma structure, mais si j'appelle à chaque fois ma fonction, il va écraser systématiquement les données que j'avais entré précédemment. En gros je suppose, qu'il va falloir créer un tableau de ma structure, mais aussi que ce tableau soit dynamique, qu'il ajoute une case mémoire à chaque appel à la boucle.

    Je sais pas si c'est mieux expliqué

  14. #14
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    Salut.

    C'est bien ce que j'avais compris en fait.

    La solution est toute simple : tu peux utiliser une wxList (c'est l'implémentation wxWidgets d'une liste chainée).
    Tu pourras y ajouter dynamiquement des éléments, y accéder, les supprimer, ...

    Regarde l'aide à ce sujet (http://docs.wxwidgets.org/stable/wx_wxlist.html), et éventuellement, si tu veux un projet complet qui l'utilise, il y a celui-là : http://www.wxdev.fr/projet9-wxToDoList.html (le projet est un peu complexe, mais il marche à merveille).

    Si tu as besoin de plus d'infos, n'hésites pas (j'essayerais éventuellement de trouver le temps de te concocter quelque chose de plus simple utilisant les wxList

    @+
    Xav'

  15. #15
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Merci Xav, je vais regarder cette solution , la solution des liste chainées me faisait peur car elle ravivaient des vieux souvenirs de fac en C, mais si y a un widegets qui joue ce rôle, je veux bien me pencher dessus

    EDIT : en fait pas la peine de se casser la tête la dessus, je ne m'occupe pas de cette partie là...

  16. #16
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Hop, de retour

    J'ai un nouveau problème, dans mon formulaire de données, il faut que si l'utilisateur remplit des champs, et que s'il fait une mauvais manipulation ( appuie sur echap, ou clique sur Annuler ) une boite de dialogue s'affiche lui notifiant que des champs ont été saisi, et qu'il peut confirmer ou infirmer son choix de quitter la boite de dialogue. Je suppose qu'il doit s'agir d'un évenement...

  17. #17
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    Salut.

    Effectivement, il s'agit d'un événement à intercepter.

    Il faut gérer l'événement "clic sur le bouton Annuler" (le fait d'appuyer sur Echap ou de fermer la boite de dialogue seront également interceptés).

    Dans la méthode événementielle, tu demandes confirmation, et si l'utilisateur veut bien fermer, tu n'as plus qu'à appeler EndModal(wxID_CANCEL).

    @+
    Xav'

  18. #18
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Merci, c'est fonctionnel

    Maintenant, mon dernier contrôle est de vérifier si certaines données n'auront pas de doublons lorsque l'utilisateur sélectionnera un numéro :

    Via un combobox, je récupère la valeur ( 1 à 8).
    Mon idée est de construire un tableau d'entier, d'ajouter le choix de l'utilisateur dans le tableau, et continuer...
    Pour le contrôle, je souhaiterai faire une boucle for, pour vérifier si le choix qu'il demande n'a pas déjà été entré ( si le numéro n'est pas déjà dans le tableau ) et auquel cas, il devra en choisir un autre.

    J'ai vu un peu de doc sur les wxArrayInt, mais elle n'est pas trop complète. Je pense que Insert est pour insérer une valeur, mais il faudrait aussi que je supprime des valeurs dans le tableau et aussi le parcourir pour vérifier si le numéro n'existe pas. As-tu un petit exemple qui pourrait me mettre sur la piste ?

  19. #19
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 146
    Points : 248
    Points
    248

    Par défaut

    En fait, wxArrayInt utilise wxArray.
    Il te suffit de regarder la doc concernant cette dernière classe, et tu aura le fonctionnement de wxArrayInt, wxArrayString, wxArrayDouble, wxArrayShort, ...

    Comme tu l'as dit, "Insert" sert à insérer une ou plusieurs données à un endroit précis.
    Sinon, tu as la méthode "Add" pour simplement ajouter des données en fin de tableau, "Remove" pour en enlever, et "Index" pour trouver la position d'un élément (et si cet élément n'existe pas, tu obtiens la valeur wxNOT_FOUND.

    @+
    Xav'

  20. #20
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Et encore un problème de résolu merci

    Mais ce n'est pas tout... j'en ai un autre. Peut on changer une variable booléenne qui ne se situe pas dans la même classe ?

    Dans mon main :

    Code :
    1
    2
    3
     
    boiteChoixPuits->m_messageErreur = true;
              boiteChoixPuits->m_erreurPuitsNonRenseigne = true;
    Dans ma classe :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(m_messageErreur)
      {
        if (m_erreurPuitsNonRenseigne)
        {
          m_texteMessageErreur = new wxStaticText(this,wxID_ANY,_("Veuillez choisir un numéro de puits"));
        }
    wxBoxSizer *cadreInformations = new wxBoxSizer(wxHORIZONTAL);
        cadreInformations->Add(m_texteMessageErreur,1,wxALL,0);
        cadre->Add(cadreInformations,1,wxALL,5);
      }
    En fait dans mon main, s'il détecte qu'un choix n'est pas correct, il change les valeurs des 2 booléens (je les mets à faux en tout début), et m'affiche un cadre dans ma fenêtre.
    Il y a sans doute plus simple à faire, mais c'est le mieux que j'ai pu trouver, et ca ne marche pas. J'ai l'impression, qu'il ne me change pas mes valeurs...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •