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

Langage Delphi Discussion :

PopupMenu sur Item de ListView


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut PopupMenu sur Item de ListView
    Bonjour à toutes et à tous,

    Je travail sur une liste view actuellement, j'ai réussi avec quelque recherche à afficher un popup menu sur l'évenement oncontextmenu du listview

    procedure TFConversion.ListView1ContextPopup(Sender: TObject; MousePos: TPoint;
    var Handled: Boolean);
    Var
    Pt: TPoint;
    begin
    Pt := ListView1.ClientToScreen(MousePos);
    PopupMenulistView.Popup(Pt.x,PT.Y);
    end;

    Ce que je n'arrive pas a faire c'est d'ouvri le popup uniquement sur une liste (un item) existant.
    Si mon liste view comporte qu'une ligne, le clique droit, doit fonctionner uniquement sur cette dernière et non pas sur les titres de colonne ou le blanc en dessous.

    comment je peux faire cela ?

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    PopupMenu1.AutoPopup à false.


    et dans ListView1.ContextPopup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure TForm17.ListView1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
    var Pos : TPoint;
    begin
      Pos := ListView1.ClientToScreen(MousePos);
      if (ListView1.SelCount = 1) and (ListView1.Selected <> nil) then
      begin
        PopupMenu1.Tag := integer(ListView1.Selected);
        PopupMenu1.Popup(Pos.X, Pos.Y);
      end
      else
        PopupMenu1.Tag := 0;
    end;
     
    procedure TForm17.PopupMenu1Popup(Sender: TObject);
    var
      TLI : TListItem;
    begin
      if PopupMenu1.Tag <> 0  then
      begin
        TLI := TListItem(PopupMenu1.Tag);
        PopupMenu1.Items[0].Caption := '('+TLI.Caption+')';
      end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

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

Discussions similaires

  1. double click sur item listView
    Par chlock62 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 28/03/2014, 22h29
  2. [MVVM] MouseBinding LeftDoubleClick sur un Item de ListView
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 24/06/2011, 17h13
  3. clic sur item listview fonctionne pas
    Par JCMANSION dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 07/12/2010, 13h06
  4. [c#] doubleclick sur item listview
    Par TERRIBLE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/05/2007, 10h48
  5. PopupMenu sur item de TListBox
    Par nmathon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/03/2003, 17h28

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