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 :

Questions sur l'utilisation du PopupMenu


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut Questions sur l'utilisation du PopupMenu
    Hello,

    Je souhaite utiliser un popupmenu en ayant la possibilité de cocher les items lorsqu'ils ont été cliqués.
    J'ai donc mis la propriété RadioItem à True pour touts les Itmes et un des item Checked à True pour celui qui doit être coché par défaut.

    Dans l'événement OnClick de chaque Item , j'ai mis le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon Item.checked:=true;
    Pour qu'il soit coché quand on clique dessus.

    Est ce correct ? Parce qu'il me semble que le que la fonctionnement "radioItem" merdouille un peu ....?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Voici ce que dit l'aide de Delphi :

    Citation Envoyé par Aide Delphi
    RadioItem
    Spécifie si l'élément de menu est mutuellement exclusif avec les autres éléments de menu du même groupe.

    Syntaxe Delphi :

    propertyRadioItem:Boolean;

    Syntaxe C++:

    __propertyboolRadioItem ={read=FRadioItem,write=SetRadioItem,default=0};

    Description

    Utilisez la propriétéRadioItem pour que l'élément de menu se comporte comme un bouton radio avec un groupe d'autres éléments.Le groupe d'éléments de menu est constituéde tous les éléments d'un même menu déroulant ou surgissant ayant la même valeur pour la propriétéGroupIndex.Quand RadioItem a la valeur true,un seul élément de menu de son groupe d'éléments peut être cochéàla fois.L'élément sélectionnédu groupe est indiquépar un rond apparaissant àcôtéde son libellé.

    Remarque : RadioItem ne sélectionne pas automatiquement l'élément lorsque l'utilisateur clique dessus àl'exécution :vous devez explicitement attribuer àla propriétéChecked la valeur true en réponse àl'événement OnClick.RadioItem change simplement l'apparence de l'état Checked (en remplaçant la coche par un point rond)et désactive automatiquement les autres éléments de menu du même groupe lorsque vous attribuez àla propriétéChecked la valeur true.

    RadioItem ne fonctionne pas pour les éléments de premier niveau d'un menu principal.

    Remarque : Sous Windows NT 3.51,l'indicateur rond n'apparaît que si le " nouveau shell "a étéinstallé.
    En fait, tu veux, au lieu d'avoir des 'v' tu veux un rond pour dire qu'on checked. Je soucis que tu rencontres, si j'ai bien cerné la chose, c'est que tu ne peux sélectionner qu'un élément, c'est ça ?

    En fait, que tu définis un élement comme étant Radio, tu ne laisse la possibilité de ne choisir qu'un Item parmis une liste. C'est comme si tu faisais un RadioGroup ... un seul élément ne peut être sélectionné parmis la liste. Ici, si tu veux tout de même en choisir plusieurs, il te faut jouer avec la propriété GroupIndex de tes Items. Ainsi, en spécifiant un GroupIndex différent pour chaque Items, tu as la possibilité d'en choisir plusieurs ...

    Je te laisse jetter un oeil

    Sinon, dans le OnClick, je mettrai celà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonItem.Checked := not MonItem.Checked;
    En une seule ligne tu gères la sélection et la non sélection. Après, à toi de voir selon ton cas si il est préférable de faire comme j'ai fait, ou de découper l'instruction ...

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut
    Merci pour ces explications très clair!
    En mettant en pratique tes conseils, j'ai trouvé d'où provient ce comportement anormal de mon Popupmenu. En fait, le Pb est que les items se "Checked" seulement en passant la souris dessus, de façon plus ou moins aléatoire, donc sans cliquer, et plusieurs items se "checked" simultanément....

    Ceci arrive si je crée plus des "sous menu" sur au moins deux items parent.

    Pour illustrer :


    J'ai bien mis un index différent pour chaque groupe d'items.

    Au cas ou cela ait de l'importance : je teste l'application sous Vista.

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Il est bien spécifié dans l'aide de Delphi :

    RadioItem ne fonctionne pas pour les éléments de premier niveau d'un menu principal.
    Donc moi, je comprends par la que si on a un Menu Principal avec des sous Menu, alors ça ne fonctionne pas car justement les items se cochent dès que la souris passe sur un Items de Menu Principal contenant un sous menu.
    J'en ai fait le test, et c'est bien ça

    De plus, as tu vraiment besoin de "checker" un élément du Menu Principal ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    Donc moi, je comprends par la que si on a un Menu Principal avec des sous Menu, alors ça ne fonctionne pas car justement les items se cochent dès que la souris passe sur un Items de Menu Principal contenant un sous menu.
    J'en ai fait le test, et c'est bien ça
    OUi, j'ai capter maintenant ...c'est bien ça .

    Citation Envoyé par ero-sennin Voir le message
    De plus, as tu vraiment besoin de "checker" un élément du Menu Principal ?
    A y réfléchir, je peux m'en passer en effet. A la rigueur on pourrais utiliser un second popumenu qui surgirait comme un sous menu du premier popupmenu, mais pourquoi faire simple ....

    Merci pour ton aide !

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

Discussions similaires

  1. Question sur l'utilisation de wget
    Par berry dans le forum Réseau
    Réponses: 7
    Dernier message: 24/05/2007, 22h46
  2. Question sur l'utilisation du popupMenu
    Par Jayceblaster dans le forum Delphi
    Réponses: 2
    Dernier message: 25/07/2006, 10h59
  3. question sur l'utilisation d'une listBox
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 17h57
  4. Question sur l'utilisation du mot réservé static
    Par flash2590 dans le forum Langage
    Réponses: 4
    Dernier message: 10/04/2006, 00h20
  5. [Framework] Questions sur l'utilisation de spring
    Par mlequim dans le forum Spring
    Réponses: 10
    Dernier message: 01/02/2006, 15h27

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