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 :

TPopupMenu : couleur des choix survolés par le curseur de souris


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut TPopupMenu : couleur des choix survolés par le curseur de souris
    Pour afficher mon PopupMenu, il faut cliquer droit dans une ligne de ListBox.
    Pour cela j'ai renseigné le nom du menu PopupMenu dans la propriété "PopupMenu" de ma ListBox.
    Quand on clique droit sur une ligne de la ListBox le PopupMenu s'affiche bien, mais le déplacement du curseur sur les lignes de choix du Popup modifie l'aspect du choix en l'entourant d'un trait alors qu'elles devraient logiquement s'afficher avec un fond bleu.

    Je veux que le choix survolé par le curseur de souris s'affiche avec un fond bleu comme c'est le cas par défaut pour les choix de mon TMainMenu et aussi pour les lignes sélectionnées dans mes TListBox.
    Je ne comprend pas pourquoi c'est différent pour le Popup, car c'est pourtant cette couleur bleue qui s'affiche quand on édite le Popup dans l'environnement de développement Delphi et que l'on déplace le curseur de souris sur les différents choix.

    Quelqu'un a-t-il une idée pour résoudre ce problème ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Aurais-tu OwnerDraw à true, et fait un dessin dans OnMeasureItem ?

    Ce que tu décrits, ressemblerait un effet HotTrack, mais ça n'existe pas pour un TMenuItem

    Cela impacte TOUS les TPopupMenu de ton application ?
    Comment se comporte les Menus dans les autres applications ? Peut-être un effet de bord sur la gestion des Themes

    Delphi 7 par exemple, n'affiche pas les thèmes en Design Time mais pourtant les supporte en RunTime si tu as inclu le Manifest XP !

    EDIT : Est-ce un cadre plein ? ou un trait pointillé ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    OwnerDraw est à false et je n'utilise pas de OnMeasureItem.
    Je n'ai qu'un seul TPopupMenu dans mon application.

    Les applications suivantes affichent des choix de PopupMenu de couleur ocre :
    - Word,
    - Wordpad.

    Les applications suivantes affichent des choix de PopupMenu d'aspect identique à mon application :
    - Environnement de développement Delphi,
    - Explorateur Windows,
    - Bloc-notes,
    - Corbeille,
    - Calculatrice.

    Je suis sous "Windows 7" avec "Delphi 5" et ne connais pas "Manifest XP".

    Qu'est-ce que EDIT ?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Citation Envoyé par momofr Voir le message
    Les applications suivantes affichent des choix de PopupMenu d'aspect identique à mon application :...
    En gros, tes Menus ont le même comportement que partout ailleurs, ça sent le thème

    Citation Envoyé par momofr Voir le message
    Je suis sous "Windows 7" avec "Delphi 5" et ne connais pas "Manifest XP".
    Effectivement, on doit pouvoir l'ajouter comme ressource, c'est juste un XML décrivant la version des controls windows
    La version "composant" est apparu en D7 !
    Semble que seul les TPopupMenu soit impactés ! Etrange !
    N'ayant pas Seven, je ne pourrais pas plus t'aider !
    A Mon avis, c'est peine perdue !

    Citation Envoyé par momofr Voir le message
    Qu'est-ce que EDIT ?
    C'est une mention, pour dire que j'ai édité ma réponse !
    Rien de plus !
    C'est une habitude assez répandu sur le Forum, vois-le comme un PS (Post Scriptum)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Je crois que pour le moment je vais me contenter de l'affichage actuel.

    Je prend note de la date de cette discussion et viendrai ici régulièrement pour le cas où quelqu'un aurait une solution simple à proposer pour résoudre ce problème.

    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Pour résoudre mon problème, il suffit simplement de définir la propriété "OwnerDraw" du PopupMenu à "True", sans avoir à déclarer pour cela de gestionnaire d'événement supplémentaire (ni "OnDrawItem" ni "OnMeasureItem").
    Cela fonctionne en tout cas chez moi : les choix de PopupMenu survolés prennent maintenant la couleur bleue.
    Ce serait bien que d'autres développeurs testent chez eux et fassent part ici du résultat (j'ai l'intention de fermer cette discussion à la fin de la semaine).

    Merci d'avance pour votre coopération

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Citation Envoyé par momofr Voir le message
    Ce serait bien que d'autres développeurs testent chez eux et fassent part ici du résultat (j'ai l'intention de fermer cette discussion à la fin de la semaine).
    J'ai testé sous D6 et D2010.
    J'ai la sélection des éléments de menu en bleu, avec ou sans OwnerDraw.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/08/2011, 17h35
  2. XML - Effectuer des choix conditionnels par ceux proposés
    Par Papy Octet dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 27/07/2011, 18h24
  3. couleur des polices lignes par lignes pour une Listbox
    Par gwenc_hlan dans le forum Tkinter
    Réponses: 4
    Dernier message: 27/03/2008, 10h26
  4. Font de l'affichage des choix proposés par autocompletion
    Par Manulegosny dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/03/2008, 00h05
  5. Obtenir le Handle de la fenêtre survolée par le curseur
    Par MiJack dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 08/04/2006, 07h51

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