Existe-t-il un moyen de montrer le style du bouton IE/Firefox Back, le bouton du menu déroulant?Comment créer un bouton avec un menu déroulant?
Répondre
Bien sûr. Mettez une barre d'outils sur la page. Cliquez avec le bouton droit sur la barre d'outils, ajoutez un bouton. Définissez le style du bouton sur tbsDropDown. Mettez un PopupMenu sur la page. Double-cliquez sur le menu contextuel pour définir les éléments de menu. Ensuite, revenez au bouton que vous avez créé et définissez sa propriété DropdownMenu pour pointer vers le PopupMenu que vous venez de créer.
Si vous ne souhaitez pas utiliser une barre d'outils, les bibliothèques de raize (www.raize.com) et express editors (www.DevExpress.com) ont des composants capables de faire cela.
Je suppose que vous voulez dire un bouton qui descend d'un menu lorsque vous cliquez dessus.
Vous pouvez également coder manuellement votre bouton, cliquez pour dérouler un TPopupMenu en dessous.
Exemple: Supprimez n'importe quoi avec un TClickEvent (peut-être un TButton) et un TPopupMenu sur votre formulaire. Ajoutez des éléments de menu. Ajoutez ensuite le gestionnaire d'événement OnClick suivant:
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(button.Left, button.Top + Button.Height);
lowerLeft := ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
Et viola! Juste comme de la magie. Vous pouvez envelopper tout dans un composant si vous envisagez de le réutiliser. Peut-être même le vendre en ligne.
Note: Si vous voulez un retard, puis extraire ce code dans une autre méthode, puis régler une minuterie Surclic et tournez la minuterie de OnMouseLeave. Ensuite, si la minuterie se déclenche, vous pouvez appeler la méthode extraite. Je ne sais pas comment vous le feriez en cliquant sur le clavier. Je ne sais pas si Firefox, etc.
La réponse de Jim est géniale, mais n'a pas vraiment fonctionné pour moi au début. ClientToScreen utilise la méthode de Form86, qui n'est correcte que si le bouton est directement sur le formulaire. Il devrait être ClientToScreen du bouton de méthode qui est appelée, comme ceci:
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(0, button.Height);
lowerLeft := button.ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
Cela fonctionne, peu importe où le bouton est.
Très bien - les deux pouces vers le haut! – user1580348
- 1. Rechercher un menu déroulant
- 2. Comment créer des sous-menus dans un menu déroulant?
- 3. Comment créer un menu déroulant en utilisant GTKAda?
- 4. Comment détecter un clic de souris pour un bouton avec menu déroulant
- 5. Java: Comment ajouter un JMenu à un JPanel ou créer un bouton déroulant?
- 6. créer un menu déroulant sur une page web php
- 7. Comment un clic sur un bouton peut-il modifier le contenu d'un menu déroulant?
- 8. Obtenir lastIndexOf sur un menu déroulant
- 9. Menu déroulant/requête CSS
- 10. Menu déroulant universel?
- 11. Comment créer un menu flottant
- 12. Comment créer un bouton "Copier"?
- 13. Comment puis-je créer un menu déroulant HTML à partir d'un fichier CSV en Perl?
- 14. Comment créer un sélecteur de menu déroulant à l'aide de jQuery?
- 15. php menu déroulant population
- 16. javascript menu déroulant question
- 17. Menu déroulant en utilisant MenuItem
- 18. Comment créer un menu dynamique dans Symfony
- 19. Comment réparer ce menu déroulant JQuery?
- 20. Créer un bouton de lien avec JQuery
- 21. jQuery Menu déroulant - slideToggle
- 22. filtre jQuery menu déroulant
- 23. menu déroulant « clignotant » dans IE6
- 24. créer un effet de type menu
- 25. menu déroulant fait un peu bizarre dans IE7
- 26. Comment créer un menu pliable en javascript?
- 27. Utilisation: menu déroulant dynamique Population
- 28. WPF - Comment créer un bouton image avec modèle
- 29. Comment créer un bouton non-rectangulaire avec Delphi?
- 30. Trier par résultat MySQL pour créer un menu déroulant à plusieurs niveaux
Le vrai problème existe si vous voulez que ce TButton soit un TSpeedButton qui reste en bas pendant que le menu est affiché et apparaisse lorsque l'utilisateur clique sur un élément du menu OU n'importe où ailleurs dans le formulaire. Mais c'est une question différente et un sujet différent ... – gabr
Ne pourriez-vous pas simplement mettre un temporisateur dans l'événement onclick du speedbutton, et faire exécuter le test d'événement du temporisateur pour voir si le menu contextuel est toujours visible? – Argalatyr
Si le bouton est placé près du bas de l'écran, le menu sera placé de bas en haut, à partir du bas du bouton, le couvrant ainsi, ce qui pourrait ne pas être ce que vous voulez. (Probablement pas de problème ici, je pensais juste que je le mentionnerais.) – dummzeuch