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

Delphi Discussion :

[TListView] Detection Click droit colonne / Ligne


Sujet :

Delphi

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut [TListView] Detection Click droit colonne / Ligne
    Bonjour a tous,
    J'ai une question toute simple je pense : J'ai un TListView en Style Report et quand je clique droit sur une ligne il m'affiche un PopupMenu. Mon problème est qu'il m'affiche aussi le PopupMenu quand je clique droit sur le titre de la colonne et me fai une violation d'accès vu que je lit les informations qui se trouve dans la ligne J'utilise l'évenement OnContextPopup pour afficher mon PopupMenu comment je pourrai faire pour qu'il ne l'affiche que si il est dans les lignes?? Merci d'avance

  2. #2
    bjl
    bjl est déconnecté
    Membre chevronné Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Par défaut
    je n'ai pas delphi sous la main amis
    je suppose qu'avec

    onMousedown et calcul de la position de la souris au moment du click et raz du shift si elle est du mauvais coté ou si Itemselected n'est pas valable.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Le problème est que si j'ai selectionner un Item avant et je clique droit sur le titre de la colonne, toujours le même problème

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Pour le TreeView tu as NodeAtPos
    Voir si il n'y a pas un ItemAtPos dans le ListView, je n'ai pas delphi ouvert

    sinon, je me base sur ListView2.ItemFocused <> nil
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    bjl
    bjl est déconnecté
    Membre chevronné Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Par défaut
    Je suppose que l´évènement onmousedown doit intervenir avant le oncontextpopup.
    en testant x et y (position de la souris) et si Button = mbRight tu es à même de modifier l'évènemet en modifiant les valeurs de button et shift

    ça devrait emprcher le oncontextpopup

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Il suffit de vérifier dans le ContextPopup qu'un élément est sélectionné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.ListView1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    begin
      with TListView(Sender) do
      begin
        if not Assigned(Selected) then
          Handled := True  // Annuler le popup
        else
          // Ton traitement sur le popupmenu, par exemple:
          PopupMenu.Items[0].Caption := 'Elément n° ' + IntToStr(Selected.Index);
      end;
    end;
    @+ Claudius

Discussions similaires

  1. Colonne de droite à la ligne sous IE
    Par Douzout dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/02/2011, 16h04
  2. [Dojo] Creer un menu sur click droite sur les ligne d'une grid
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 26/01/2010, 15h47
  3. [C#][DataGridView]Comment selectionner ligne sur Click Droit ?
    Par VincenzoR dans le forum Windows Forms
    Réponses: 12
    Dernier message: 23/12/2005, 22h34
  4. [JSP][Javascript] click droit sur un lien
    Par Stessy dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 24/09/2004, 10h14
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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