Problème listview clic droit

Résolu
pelly1308 Messages postés 13 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 5 septembre 2005 - 20 oct. 2004 à 14:56
pelly1308 Messages postés 13 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 5 septembre 2005 - 4 nov. 2004 à 10:22
Bonjour tout le monde.
J'écris car j'ai un problème avec une liste view.
En fait, j'utilise principalement l'entête des colonnes de cette listview (en mode vsReport).
Lorsque je clique sur un titre de colonne avec le bouton gauche de la souris, je fais une action, et ça marche très bien, mais quand je clique avec le bouton droit, l'évènement OnColumnRightClick ne me retourne pas la bonne colonne (celle sur laquelle j'ai cliqué) si ma fenêtre est trop petite pour contenir toutes mes colonnes (qu'une scrollbar est apparue), cela me retourne une autre colonne dans le paramètre Column de l'évènement.
J'ai l'impression que la position dans la fenêtre de la colonne est utilisée pour retrouver cette colonne, hors toutes les colonnes ne sont pas visibles.
Je ne sais pas si j'ai été très claire, mais je ne sais pas trop comment l'expliquer autrement!
Merci d'avance pour toute suggestion.

3 réponses

pelly1308 Messages postés 13 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 5 septembre 2005
4 nov. 2004 à 10:22
Bon, finalement, j'ai fini par calculer toute seule la colonne cliquée, avec l'état de ma scrollbar et la position de ma souris (scrollbar+position de la souris = position totale dans la listview => calcul de la bonne colonne en utilisant le width de chacune d'elles)
Merci à tous ceux qui ont essayé de m'aider (dont Delphiprog, toujours très présent sur le forum)
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 oct. 2004 à 19:48
Comment peut-on cliquer sur une colonne qui n'est pas visible ?

J'ai beau essayer, la colonne renvoyée est bien la bonne.
Peux-tu nous dire si le code suivant répond correctement ?
procedure TForm1.ListView1ColumnRightClick(Sender: TObject;
  Column: TListColumn; Point: TPoint);
begin  ShowMessageFmt('Position %d, Colonne.Caption %s', [Column.Index, Column.Caption]);
end;

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
0
pelly1308 Messages postés 13 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 5 septembre 2005
22 oct. 2004 à 09:23
Bah justement, c'est ça le problème (désolée, j'avais dû mal m'expliqué), ça ne retourne pas le bon résultat.
J'essaye de mieux m'expliquer:
Imaginons que j'ai 5 colonnes dans ma listview, mais uniquement la place d'en afficher 4 (d'où l'apparition de la scrollbar).
Lorsque les 4 premières sont visibles, si je clique droit sur l'une d'elle, pas de problème.
Mais si ce sont les 4 dernières qui sont visibles, alors lorsque je clique sur la 2ème visible (donc la 3ème en tout) la réponse correspond à la 2ème en tout (la 1ère visible).
J'espère avoir été un peu plus clair cette fois-ci.
Merci d'avance
0
Rejoignez-nous