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

C++Builder Discussion :

stringgrid et clic droit de la souris


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Points : 33
    Points
    33
    Par défaut stringgrid et clic droit de la souris
    Bonsoir tout le monde,

    Je souhaite détécter quelle cellule d'un élément de type stringgrid est pointée lorsque je clique avec le bouton droit de la souris.

    Le problème est que les coordonnées de la cellule ne sont pas passées en paramètres dans la fonction StringGrid1MouseDown:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::StringGrid1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     
    }
    Il y a beaucoup de colonnes et j'ai un scroll horizontal. Par conséquent les coordonnées ne me permettent pas de savoir dans quelle colonne je me trouve.

    Avez-vous une idée de la manière de résoudre ce problème?

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    didier17062006 a ecrit:
    Bonsoir tout le monde,

    Je souhaite détécter quelle cellule d'un élément de type stringgrid est pointée lorsque je clique avec le bouton droit de la souris.

    Le problème est que les coordonnées de la cellule ne sont pas passées en paramètres dans la fonction StringGrid1MouseDown:

    Code :
    void __fastcall TForm1::StringGrid1MouseDown(TObject *Sender,
    TMouseButton Button, TShiftState Shift, int X, int Y)
    {

    }Il y a beaucoup de colonnes et j'ai un scroll horizontal. Par conséquent les coordonnées ne me permettent pas de savoir dans quelle colonne je me trouve.

    Avez-vous une idée de la manière de résoudre ce problème?
    Un lien sur le sujet je pense que cela pourra t'aider.
    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Points : 33
    Points
    33
    Par défaut
    Merci blondelle, mais ce n'est pas ce que je recherche.
    Je n'ai pas de problème pour écrire dans une cellule avec l'évènement onSelectCell.
    Le problème que je rencontre est que bcb ne propose pas une méthode permettant de connaître ARow et ACol du stringgrid lorsqu'on clique dessus.
    Lorsque je clique avec le bouton droit de la souris, la cellule n'est pas sélectionnée... par contre on a les coordonnées x,y de la position du curseur.
    Avec ces coordonnées j'arrive à calculer ARow et Acol. Mais ça ne fonctionne pas pour les cellules 'cachées' => lorsqu'on scroll pour visualiser la suite du stringgrid.
    Le coin haut-gauche et bas-droit ont toujours les mêmes coordonnées, donc pas possible d'utiliser cette solution.

    Un peu d'explication: je souhaite sur un clique droit ouvrir un menu popup permettant de copier/coller une cellule ou une colonne entière.

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Quelquechose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void __fastcall TForm2::StringGrid1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
    TGridCoord coord;
    if (Shift.Contains(ssRight))
    {
    	coord = StringGrid1->MouseCoord(X,Y);
    	String S = StringGrid1->Cells[coord.X][coord.Y];
    	ShowMessage(S);
    }
    }
    En espérant t'aider
    @ +

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Points : 33
    Points
    33
    Par défaut
    Magnifique Sunchaser, tout simplement parfait.
    Je te remercie du coup de pouce

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

Discussions similaires

  1. gestion du clic droit de la souris
    Par christianf dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/09/2007, 20h30
  2. Réponses: 4
    Dernier message: 20/08/2006, 17h21
  3. Est-il possible de bloquer le clic-droit de la souris?
    Par Jahprend dans le forum Windows
    Réponses: 1
    Dernier message: 09/06/2006, 12h56
  4. Réponses: 6
    Dernier message: 15/05/2006, 17h03
  5. Réponses: 3
    Dernier message: 24/01/2006, 18h38

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