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

Composants VCL Delphi Discussion :

RadioGroup Evenement RadioButton


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut RadioGroup Evenement RadioButton
    Bonjour

    J'ai un RadioGroup (RGr) dont je rajoute à la demande les RadioButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    While i <> ListResultat.Count do begin
    RGr.Items.Add(ListResultat.Strings[i]);
    inc(i);
    end;
    Ensuite j'affecte l'évenement onclick de chaque RadioButton à la même procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i:= 0 to RGr.Items.Count-1 do TRadioButton(RGr.Controls[i]).onclick:=RadioButtonOnClick;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure Tform1.RadioButtonOnClick(Sender: TObject);
    begin
     ShowMessage(IntToStr(RGr.itemindex));
     end;
    Donc théoriquement, je devrai avoir dans mon showmessage, l'index du radiobutton sur lequel je viens de cliquer. Non ??
    Ben j'obtiens toujours le même index : 1

    Je comprends pas
    Merci.

  2. #2
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RGr.Items:=ListResultat.Strings;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RGr.onclick:=RadioButtonOnClick;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure Tform1.RadioButtonOnClick(Sender: TObject);
    begin
     ShowMessage(IntToStr(RGr.itemindex));
    end;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    Sans fioriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.onclick:=RadioButtonOnClick;
    J'avoue pas trop comprendre la syntaxe bien que je comprenne ce que ca fait.
    Qui est ce que je vous voulez que ca fasse, ca tombe bien

    Merci beaucoup

  4. #4
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.Items:=ListResultat.Strings;

    alors c'est

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 41
    Par défaut
    Citation Envoyé par inspecteur rick Voir le message
    Sans fioriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.onclick:=RadioButtonOnClick;
    J'avoue pas trop comprendre la syntaxe bien que je comprenne ce que ca fait.
    Qui est ce que je vous voulez que ca fasse, ca tombe bien

    Merci beaucoup

    Salut, et bien pour la syntaxe, je ne sais pas si je vais répondre à tes interrogations mais on ne fait que affecter à l'événement onclick de l'objet RGr (RGr.onclick) la méthode codée RadioButtonOnClick.

    Comme tu as du le comprendre, lorsqu'un evenement click surviendra sur ton objet alors il appelera la méthode que tu lui a affecté. c'est un lien si l'on veux.

    Et sinon je pense que le message précédent te demande de classer le topic en résolu, car je pense que la solution a été apportée. (ou pas en fait)

    (bouton tout en bas du topic)

    Salut

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    Désolé, j'ai oublié le résolu

    Pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.onclick:=RadioButtonOnClick;
    J'ai compris l'association entre le onclik "générique" et ma procedure perso RadioButtonOnClick

    Mais ce que je comprends pas c'est la synthaxe, car RGr est un TRadioGroup et ce composant à un evenement Onclick, or je veux gérer le onclick des radiobuttons dans le radiogroup.
    Donc pour moi le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.onclick:=RadioButtonOnClick;
    devrait affecter le onclick du RadioGroup à ma procedure perso RadioButtonOnClick.

    Or c'est pas ce qui se passe (et tant mieux) mais je pige pas pourquoi.

    P.S :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGr.Items:=ListResultat.Strings;
    Euh, j'avais simplifier le code avant de poster ici, pour lever les trucs inutiles à mon problème. Ce code marche pas pour ce que je veux faire, j'incremente de 2 à chaque fois. Mais ca vous pouviez pas le deviner.
    Mais c'est pas l'objet du problème (de mon ex problème)

  7. #7
    Membre averti
    Inscrit en
    Août 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 41
    Par défaut
    Ok pour la question du radio group, j'avais pas compris comme ça.

    Et bien je ne pourrais pas te donner de réponse sure. mais je peut émettre des hypothèses.

    Je pense que le Onclick est affecté au Radiogroup car il doit gérer lui même cet événement pour ne pas laisser au programmeur la tâche de déselectionner B lorsque qu'on click sur A par exemple (exemple d'un radiogroup formé de A et B radiobutton).

    Du coup on ne peut laisser le développeur directement agir sur les événenements de chaque radiobutton. (enfin de prime abort car cela doit bien être possible d'une autre manière).

    Donc du coup si on veut réaliser des traitements conditionnés par le radiobutton qui est cliqué, il doit falloir réaliser un test dans le onclick du radio group sur l'index de l'élément cliqué par exemple, ou quelque chose du style.

    Je sais pas si j'ai été clair. mais "J'me comprend, j'me comprend"

    (Ps: perso pas de soucis pour le "résolu") on t'a un peu sauté dessus

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

Discussions similaires

  1. Evenements des buttonGroup ou RadioButton
    Par greg1602 dans le forum Composants
    Réponses: 4
    Dernier message: 07/01/2009, 15h02
  2. Radiogroup et radiobutton
    Par breizh44 dans le forum Débuter
    Réponses: 1
    Dernier message: 28/02/2008, 21h21
  3. RadioButton et evenement
    Par ALIAS200 dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 11/05/2007, 14h31
  4. Bloquer un radiobutton dans un radiogroup
    Par Masmeta dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/01/2007, 09h21
  5. Problème de couleur RadioGroup & Radiobutton
    Par gobgob dans le forum Delphi
    Réponses: 20
    Dernier message: 06/07/2006, 15h05

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