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

Affichage d'un groupbox selon la sélection d'un ComboBox [Débutant]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut Affichage d'un groupbox selon la sélection d'un ComboBox
    J'ai un petit problème concernant un combobox,

    J'ai une dizaine de choix dans un combobox et quand je sélectionne un champ en particulier je souhaiterais qu'un groupbox s'affiche juste en dessous ( il a été mi en non visible par défaut ).


    J'ai fait ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( ComboBox1->ItemIndex == 0 ){GroupBox1->Visible = true;}
    Ici, j'interprète mon code de cette manière: si l'utilisateur sélectionne le premier élément du ComboBox1, le GroupBox1 s'affiche.
    Problème: ça compile parfaitement, mais quand je passe le premier champ ( qui équivaut à l'indice 0 donc ) , rien ne s'affiche.

    Une idée d'ou ça pourrait venir?
    thanks

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut, le code est bon, mais tu ne la peut être pas mis au bon endroit, il faudrait le mettre dans l'évènement OnChange du ComboBox

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    ça marche parfaitement, merci... une autre petite question tiens

    Pour ce combobox ou j'ai une dizaine de possibilités différentes, pour chaque "champs" j'ai un groupbox différent qui doit apparaitre, et le groupbox doit toujours apparaitre au même endroit (juste en dessous du combobox1), il y a donc juste en fonction du combobox que le groupbox va changer

    Problème: dans mon Form2, ça m'embête de superposer tout les groupBox les uns sur les autres et les mettrent tous en visible->false et ne faire apparaitre que le groupbox désiré quand l'utilisateur choisira le champ de la combobox correspondant.

    C'est pas terrible si j'ai des modifications de superposer 10 groupbox exactement les uns sur les autres, ya pas une autre manière de procéder ( j'espère que tu vois ce que je veux dire )
    Merci en tout cas pour ton aide

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Tu peut toujours les mettre à des positions différentes puis, lorsque tu les rends visible leur fixer leur position directement par code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GroupBox1->Left = XX; //XX est un chiffre indiquant la position en largeur du coin haut gauche du GroupBox dans la fenêtre
    GroupBox1->Top = XX; //XX est un chiffre indiquant la position en hauteur du coin haut gauche du GroupBox dans la fenêtre

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Merci beaucoup ça me semble parfait.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Hum en fait j'ai un bug bizarre, j'ai choisi de mettre deux groupbox d'un sur l'autre
    pour combobox == 0 j'ai le groupbox1
    pour combobox == 1 j'ai le groupbox2


    Le problème c'est que quand je passe sur Combobox==0 j'ai bien le groupbox1 qui s'affiche, quand tout de suite après, je passe sur le combobox==1, j'ai bien le groupbox2 qui s'affiche mais si ENSUITE, je veux revenir sur le combobox==1, j'ai pas le groupbox1 qui s'affiche, ça reste bloqué sur le 2...c'est plus du tout dynamique...

    C'est difficile à expliquer... j'espère que tu vois...
    le code est simplement pourtant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm2::ComboBox1Change(TObject *Sender)
    {
    if( ComboBox1->ItemIndex == 0 ){GroupBox1->Visible = true;}
    if( ComboBox1->ItemIndex == 1 ){GroupBox2->Visible = true;}
    }
    J'ai essayé de repréciser de virer les autres avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm2::ComboBox1Change(TObject *Sender)
    {
    if( ComboBox1->ItemIndex == 0 ){GroupBox1->Visible = true; GroupBox2->Visible=false;}
    if( ComboBox1->ItemIndex == 1 ){GroupBox2->Visible = true; GroupBox1->Visible=false;}
    }
    et le résultat est encore pire, j'ai plus le groupbox2 qui s'affiche du tout ( meme pas une fois )

    et j'ai essayé aussi avec des else, ça ne donne rien de bon

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

Discussions similaires

  1. [Excel] Pré-affichage d'un nom selon liste
    Par leo2v2o dans le forum Excel
    Réponses: 4
    Dernier message: 18/01/2007, 15h39
  2. Réponses: 2
    Dernier message: 23/08/2006, 10h05
  3. Réponses: 5
    Dernier message: 15/08/2006, 16h51
  4. Filtrer selon la sélection d'un menu déroulant
    Par Frollo dans le forum Access
    Réponses: 11
    Dernier message: 26/07/2006, 21h13
  5. Affichage d'un résultat selon requête dans formulaire avec date
    Par SMPGSARL dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 06/07/2006, 14h52

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