J'utilise Delphi. J'ai mon menu contextuel prêt, et dans un sous-menu je veux cliquer, mais je ne veux pas que le menu contextuel disparaisse. Je veux cliquer et le faire rester.Comment puis-je rendre un menu visible après le clic?
Répondre
Je ne sais pas comment faire, mais le composant TAdvStickyPopupMenu (logiciel TMS) peut le faire.
Facile un, désactiver l'élément. < g>
Blague à part, pas une tâche facile. Si vous voulez que le menu contextuel agisse comme un formulaire le plus haut (c'est-à-dire que vous pouvez interagir avec les éléments et les contrôles de votre formulaire sans désactiver le menu), oubliez-le, cela ne peut pas être fait menu. Mais si votre exigence est exactement comme indiqué dans votre question (cliquez sur un élément, et le menu n'est pas fermé - cliquez à l'extérieur et il est fermé), avec un peu de travail, ce serait possible.
Votre objectif serait de subclass la fenêtre dans laquelle votre sous-menu se situera pour remplacer certains messages. Tout d'abord, dérivez une nouvelle classe à partir de 'TPopupList' et remplacez-la par 'WndProc'. Voici un example faisant ceci. Si vous avez l'intention d'empêcher la fermeture du menu en sélectionnant les éléments racine, dans WndProc de PopupList, vous manipulez WM_ENTERIDLE et obtenez le handle de fenêtre du menu contextuel à partir de lParam du message et sous-classez la fenêtre du menu contextuel. Si vous avez seulement l'intention d'empêcher la fermeture du menu en sélectionnant les éléments du sous-menu, alors dans WndProc de PopupList vous regarderez les messages WM_INITMENUPOPUP où wParam n'est "pas" le handle du PopupMenu lui-même, cela signifierait un sous-menu est sur le point d'être montré. Seulement alors vous manipulez WM_ENTERIDLE et obtenez le handle de fenêtre dans lequel réside le sous-menu et sous-classez cette fenêtre. Après le sous-classement de la fenêtre dans laquelle se trouve le menu contextuel ou le sous-menu contextuel, vous interceptez un message MN_BUTTONDOWN non documenté ($ 01ED) et évitez toute autre manipulation (n'appelez pas la procédure de fenêtre d'origine). Probablement vous voudriez également empêcher la fermeture du menu avec le clavier; vous surveilleriez les messages WM_KEYDOWN (Entrée) et WM_CHAR (accélérateur).
Eh bien, il faudrait un peu de travail, je suppose.
- 1. Comment rendre le validateur RequiredField visible
- 2. Android: Comment rendre le clavier toujours visible?
- 3. chargement du contenu après un clic yensdesign menu à onglets
- 4. Comment rendre WPF Adorner visible
- 5. android: définir le menu/visible
- 6. JavaScript: Rendre le premier élément caché visible
- 7. Arrêter le double clic après un seul clic
- 8. Rendre le masque visible dans ActionScript 3.0
- 9. joomla menu non visible
- 10. Rendre un libellé visible/invisible dans Delphi
- 11. Selenium IDE - comment personnaliser le menu contextuel du clic droit
- 12. Comment rendre TextBox visible après la sélection d'un élément dans un groupe d'options
- 13. Rendre sélectionnable à nouveau un WPF TreeviewITem après le premier clic
- 14. Rails: Rendre un élément div visible/invisible avec onchange après avoir modifié un champ collection_select
- 15. comment désactiver NumericUpDownExtender après le premier clic?
- 16. Rendre un élément visible sur ajax dans JSF2
- 17. Comment rendre le contenu de Expander visible à VisualTreeHelper
- 18. FLEX 4 s: Scroller, comment rendre le composant contenu visible?
- 19. Rendre le séparateur visible pour le panneau de division
- 20. Quitter le menu jQuery après un délai
- 21. Modifier le menu clic-droit sur Firefox
- 22. jQuery: Rendre un bouton visible quand un TextBox a contenu
- 23. Fond de UILabel visible après un composite
- 24. API de contact stockant le contact comme un contact invisible: comment le rendre visible?
- 25. CSS - Survoler un élément et rendre visible un autre élément
- 26. Extjs: Comment créer un menu contextuel dans le menu
- 27. Aide CSS, Rendre le menu fluide
- 28. Comment faire un clip, cliquable après être devenu visible?
- 29. Le style css reste après clic
- 30. Comment rendre un bouton de lien visible après avoir cliqué sur un autre bouton dans asp.net (vb) dans button_click()
La fenêtre surgit d'une icône de la barre d'état. Je ne sais pas comment utiliser le TAdvStickyPopupMenu avec le composant de plateau – user332443
Voici comment cela fonctionne: d'abord vous devez payer une petite fortune pour le logiciel TMS. Ce que vous ne voulez probablement pas faire. Fin de l'histoire. – stevenvh