Popupmenu dans un listview

Signaler
Messages postés
15
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
24 octobre 2003
-
Messages postés
15
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
24 octobre 2003
-
Bonjour à tous.

Je suis nouveau dans la programmation delphi et j'ai un probleme :

Dans une form j'ai dispose un treeview et une listview et je voudrais faire apparaitre un popupmenu sur la listview en cas de click droit de la souris seulement si un item est selectionne.

Merci d'avance.

Zorg

4 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Dans les méthodes du composant TListView, il y figure :

Renvoie l'élément de la liste se trouvant à la position spécifiée.

function GetItemAt(X, Y: Integer): TListItem;
Donc, si cette fonction renvoie autre chose que Nil dans le cas où l'utilisateur clique sur le contrôle TListView, alors, tu affiches ton popmenu.

Simple, non ?
En prime, tu connais même l'élément sélectionné !

May Delphi be with you.
Delphi advanced
Messages postés
15
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
24 octobre 2003

Simple et efficace. Merci beaucoup.

Ah! juste une petite question, j'ai bien trouve l'evenemment OnClick pour la listview, mais comment savoir que c'est un click droit?

Zorg
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Réponse :
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
If ListView1.GetItemAt(x, y) = nil then
ShowMessage('Vous n''avez rien sélectionné !')
else
with ListView1 do
ShowMessage(
Items[Items.IndexOf(GetItemAt(x, y))].Caption
+ ' sélectionné.');
end;
May Delphi be with you.
Delphi advanced
Messages postés
15
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
24 octobre 2003

Merci encore une fois. Je vais pouvoir bien avancer maintenant.

Zorg