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 :

Différence entre : GroupBox, RadioGroup et Panel en C++ Builder


Sujet :

C++Builder

  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 Différence entre : GroupBox, RadioGroup et Panel en C++ Builder
    Bonjour, je souhaiterais mettre des boutons dans un des ces 3 composants mais je ne comprend pas trop la différence qu'il y a... j'ai l'impression qu'on peut mettre des boutons dans les 3 sans problème...?
    Quelqu'un peut m'éclairer sur ce point ?


    Autre point :

    Dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::RadioButton2Click(TObject *Sender)
    {
    if(RadioButton2->Checked == true) {StringGrid1->Cells[3][3]=RadioButton2->Caption;  }
    if(RadioButton3->Checked == true) {StringGrid1->Cells[3][4]=RadioButton3->Caption;  }
    if(RadioButton4->Checked == true) {StringGrid1->Cells[3][2]=RadioButton4->Caption;  }
    }

    Il n'y a que le RadioButton2 qui est pris en compte, je dois recréer un évènement pour chaque bouton différent ? pas moyen de les rassembler dans un même évènement pour plus de clarté dans le code ?
    thanks

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Tu ne peux pas mettre de bouton dans le RadioGroup, ce n'est pas un conteneur.
    Le RadioGroup s'utilise en remplissant sa propriété Items pour creer des RadioBouton (un RadioBouton par ligne de la propriété items)

    Le GroupBox est un conteneur, donc tu peux y mettre ce que tu veux, mais il est plutôt destiné à mettre des CheckBox ou des RadioBouton que tu devra gérer individuellement, c'est une question de présentation.

    Le Panel est aussi un conteneur, On peut y mettre toute sorte de composants.

  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
    Merci pour ces explications, je vais regarder ça.

    Si quelqu'un d'autre à une idée pour la question 2 de mon post initial, je suis toujours preneur.

  4. #4
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par dekalima Voir le message
    Autre point :

    Dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::RadioButton2Click(TObject *Sender)
    {
    if(RadioButton2->Checked == true) {StringGrid1->Cells[3][3]=RadioButton2->Caption;  }
    if(RadioButton3->Checked == true) {StringGrid1->Cells[3][4]=RadioButton3->Caption;  }
    if(RadioButton4->Checked == true) {StringGrid1->Cells[3][2]=RadioButton4->Caption;  }
    }

    Il n'y a que le RadioButton2 qui est pris en compte, je dois recréer un évènement pour chaque bouton différent ? pas moyen de les rassembler dans un même évènement pour plus de clarté dans le code ?
    thanks
    L'événement OnClick() est utilisé pour répondre au click de l'utilisateur sur le radio bouton, tu ne peux pas avoir un seul événement OnClick() pour tous les RadioButton, c'est logique.
    Par contre si tu veux faire la même chose en réponse au click sur les RadioButton, rien ne t'empêche de créer une méthode que tu appel à chaque fois, par exemple

    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
    19
    void __fastcall TForm1::ClickSurRadioBouton(TObject *Sender)
    {
       ....
    }
     
    void __fastcall TForm1::RadioButton1Click(TObject *Sender)
    {
       ClickSurRadioBouton(Sender);
    }
     
    void __fastcall TForm1::RadioButton2Click(TObject *Sender)
    {
       ClickSurRadioBouton(Sender);
    }
     
    void __fastcall TForm1::RadioButton3Click(TObject *Sender)
    {
       ClickSurRadioBouton(Sender);
    }

  5. #5
    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
    Citation Envoyé par free07 Voir le message
    L'événement OnClick() est utilisé pour répondre au click de l'utilisateur sur le radio bouton, tu ne peux pas avoir un seul événement OnClick() pour tous les RadioButton, c'est logique.
    Bien sur qui si tu le peut, il te suffit de savoir quel composant à provoqué l’événement grâce au paramètre Sender qui est l'adresse du composant ayant déclenché ce composant, d'ailleurs tu te contredit avec ton exemple car ta méthode ClickSurRadioBouton tu l'appelle depuis tout tes évènements, de plus cette méthode à le prototype d'un événement OnClick et tu pourrait donc tout à fait l'associer directement dans l'inspecteur d'objet si tu le voulais.

  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
    Donc en fait ma question c'est ça :
    j'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::RadioButton2Click(TObject *Sender)
    {
    if(RadioButton2->Checked == true) {StringGrid1->Cells[3][3]=RadioButton2->Caption;  }
    }
    Donc là c'est pour le traintement du RadioButton2
    Ma question c'est : peut on mettre à l'intérieur une autre instruction pour le traitement d'un bouton 2,3 ect ...
    Pour éviter à chaque fois de créer un évènement RadioButton3Click, RadioButton4Click ect ect


  7. #7
    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
    Tout à fait, par exemple ce code devrait faire ce que tu veut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TForm1::RadioButton2Click(TObject *Sender)
    {
      TRadioButton* radio = (TRabioButton*)Sender;
      if(radio->Checked == true) 
      {
        StringGrid1->Cells[3][3] = radio->Caption;
      }
    }

  8. #8
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par pottiez Voir le message
    ...
    cette méthode à le prototype d'un événement OnClick et tu pourrait donc tout à fait l'associer directement dans l'inspecteur d'objet si tu le voulais.
    Effectivement, j'avais oublié que tu pouvais spécifier dans l'inspecteur d'objet une autre méthode que celle crée automatiquement...
    Désolé pour cet oubli

  9. #9
    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
    C'est pas grave, il n'y as pas mort d'homme

  10. #10
    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
    Ok , et pour le RadioGroup, quand j'ai créé les boutons dans la propriété Item et que je souhaite récupérer ce que l'utilisateur a saisi dans une liste strList par exemple , syntaxiquement ça donne quoi ?

  11. #11
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(RadioGroup1->ItemIndex != -1)
      strList->Add(RadioGroup1->Items->Strings[RadioGroup1->ItemIndex]);

  12. #12
    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
    Nickel, merci

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

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Différence entre Jpanel, JFrame, Frame, Panel
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 12/06/2006, 22h51
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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