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++ Discussion :

Valeur sélectionnée dans un Combobox


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Valeur sélectionnée dans un Combobox
    Bonjour,
    En C++, je voudrais que lorsque l'on sélectionne une valeur dans un combobox, ça affiche des informations suivant la valeur sélectionnée.

    Admettons que dans le combobox, j'ai 3 valeurs : toto, titi et tata.
    Lorsque je sélectionne "toto", il m'affiche un message"toto sélectionné".
    Lorsque je sélectionne "titi", il m'affiche un message"titi sélectionné".
    Lorsque je sélectionne "tata", il m'affiche un message"tata sélectionné".

    J'aimerais faire une boucle pour que les informations se mettent à jour et non pas avec un "if...else" qui permet d'afficher les messages qu'une seule fois.
    Mais je ne sais pas comment faire la boucle.
    Merci de m'aider.

  2. #2
    Membre régulier Avatar de jehrikhan
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 89
    Points
    89
    Par défaut
    tu pourrais nous dire ce que tu utilises pour programmer ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    J'utilise Borland C++Builder 6.

  4. #4
    Membre régulier Avatar de jehrikhan
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 89
    Points
    89
    Par défaut
    Je sais pas exactement comment tu l'as codé mais si ça ne t'affiche le message qu'une fois, je suppose que tu n'as pas fait comme ça.

    Quand tu regarde dans la liste des propriétés de ton ComboBox, tu as un onglet "Evenements".
    Ce sont des fonction qui seront appellées quand tel ou tel évenemnt se produira.
    Par exemple dans ton cas l'evenement a prendre est "OnChange".
    onChange est appellé a chaque fois que l'utilisateur change la selection dans le combo.
    Il te suffis de double cliquer dans la zone de saisie a droite de "OnChange" pour que ça te crée la méthode qui va bien, ça te mettra meme ton curseur dedans :p

    La tu met le code que tu veux. Dans ton cas tu tests le paramètre ItemIndex de ton combo. il te faudra bien une structure en if mais ça sera appellé a chaque changement de sélection.

    si dans ton comboBox tu as entré les valeurs :
    toto
    titi
    tata

    toto correspond a l'index 0, titi au 1 et tata au 2

    ce qui donnerait

    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::ComboBox1Change(TObject *Sender)
    {
      if (ComboBox1->ItemIndex == 0)
      {
        // afficher message toto selectionné
      }
      if (ComboBox1->ItemIndex == 1)
      {
        // afficher message titi selectionné
      }
      if (ComboBox1->ItemIndex == 2)
      {
        // afficher message tata selectionné
      }
    }

    donc chaque fois que l'utilisateur change la selection de ton combo, la fonction OnChange est appelée, elle cherche ce qui est selectionné et affiche le message qui va bien.

    sinon si tu veux éviter la structure en if tu as possibilité de récupérer le texte de la selection avec le parametre Text du combobox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::ComboBox1Change(TObject *Sender)
    {
      AnsiString message;
      message = ComboBox1->Text;
      message += " est selectionné";  
    }
    dans ce cas la chaine message contiens: [selection] est selectionné
    ou [selection] est soit toto, titi ou tata celon ce qui a été selectionné par l'utilisateur

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Les ComboBoxes ont normalement une valeur permettant de savoir l'index de l'élément sélectionné.

    Sous BCB, cette valeur est obtenue par SelectedIndex.

    Elle vaut, le plus souvent (ou, en tout cas, c'est ainsi sous BCB) -1 si aucun élément n'est sélectionné, et l'index est donc égal à 0 si c'est le premier élément qui est sélectionné (l'index équivaut donc à Ligne-1 )

    L'une des solutions les plus faciles est donc, tout simplement, de créer un tableau de chaines qui contient exactement les valeurs de ta combobox, éventuellement avec une valeur "rien sélectionné" en plus.

    Ainsi, si tu as un combobox dont les différentes valeurs sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    index 0 :   Tata
    index 1 :   Titi
    index 2 :   Tutu
    index 3 :   Chat
    index 4 :   Chien
    Tu peux très bien travailler avec, par exemple, un tableau d'AnsiString déclaré sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    AnsiString sel[6]={"aucune valeur sélectionnée",
                       "Tata",
                       "Titi",
                       "Tutu",
                       "Chat",
                       "Chien"};
    et créer un code qui sera appelé lors de l'événement "OnChange" de ton combobox qui ressemblerait à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox1->Text->value=sel[combo1->SelectedIndex()+1];
    ou travailler avec un tableau d'AnsiString sel sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AnsiString sel[5]={"Tata (est sélectionné)",
                       "Titi",
                       "Tutu",
                       "Chat",
                       "Chien"};
    avec la gestion de l'événement sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(combo1->SelectedIndex()==-1)
     textbox1->Text->value="Aucune valeur sélectionnée";
    else
        textbox1->Text->value=sel[combo1->SelectedIndex()];
    ou combo1 est le nom du combobox et textbox1 est le nom de l'élément dans lequel tu veux afficher le texte

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci à vous d'avoir répondu aussi vite.
    J'ai testé ton code jehrikhan et il marche impec.
    Je ne connaissais pas l'évènement "OnChange" mais en tout cas c'est exactement ce que je voulais.

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

Discussions similaires

  1. Affichage de la valeur sélectionnée dans un comboBox
    Par polymorphisme dans le forum JavaFX
    Réponses: 8
    Dernier message: 13/01/2014, 11h22
  2. Réponses: 2
    Dernier message: 18/08/2011, 21h46
  3. Réponses: 5
    Dernier message: 06/06/2011, 11h10
  4. [XL-2003] Aucune valeur sélectionnée dans le cadre du comboBox ?
    Par Mandrake31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2010, 20h16
  5. Récupérer ancienne valeur sélectionnée dans une combobox
    Par alys56 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/07/2008, 17h11

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