2010-03-08 8 views
1

J'ai un TListView et TPopupMenu, et je veux montrer un menu contextuel quand je fais un clic droit sur un TListItem. J'ai essayé le "AutoPopup" en assignant le composant, mais sur un clic droit, le menu contextuel est affiché seulement et l'élément voulu n'est pas sélectionné. J'ai donc essayé d'utiliser le "OnMouseDown", mais nous devons cliquer et cliquer à nouveau pour afficher le menu sur l'élément voulu. Le premier clic consiste à sélectionner l'élément et le second à afficher le menu. Mais je veux juste un clic pour faire les deux choses. Avez-vous et idée sur le problème?Double-cliquez avec le bouton droit de la souris pour afficher un menu contextuel avec TListView!

Merci.

+0

Je ne pense pas qu'il y ait un problème, car la sélection se fait avec la souris, tandis que le menu contextuel est affiché à la souris. Il suffit d'assigner le 'PopupMenu' de la liste. Il le fait pour les éléments dans le style de vue de rapport, dans mes programmes. – mghie

Répondre

0

Problème résolu. Comme prévu, j'utilisais TPopUpActionaBar, donc un utilisateur doit utiliser un TPopupMenu simple Lors de l'utilisation d'un TPopUpMenu, pas de problème! (Excusez mon mauvais anglais!) Merci.

1

Je crois que ce code résout le problème:

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; 
    Shift: TShiftState; X, Y: Integer); 
begin 
    if Button = mbRight then 
    ListBox1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y))); 
end; 
+0

Au moins si vous faites référence à TListBox. Comme mentionné ci-dessus, il n'y a aucun problème quand il s'agit de TListView. –

+0

Je n'avais pas de TListBox, mais un TListView (vsReport comme ViewStyle) Je vais tester le code sur un Tlistview. Je vous remercie. – djiga4me

0

d'abord ajouter un TPopupMenu à votre formulaire et définir les éléments que vous souhaitez afficher sur cette (en delphi 2010 double-cliquez sur l'icône du menu contextuel pour accéder à l'éditeur d'élément)

Ensuite, définissez l'élément PopUpMenu dans TListView sur le nouveau TPopUpMenu.

Si les deux sont correctement mis en place, lorsque vous faites un clic droit sur le TListView vous verrez les éléments définis, et leur mettre le feu hors de leur événement sur-Click

Questions connexes