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

Lazarus Pascal Discussion :

StringGrid et souris [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Profil pro
    Retraité
    Inscrit en
    Avril 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2004
    Messages : 74
    Points : 69
    Points
    69
    Par défaut StringGrid et souris
    Sûrement un truc tout bête, mais si quelqu'un peut m'éclairer...

    Je cherche à connaitre les coordonnées (colonne, ligne) de la cellule sur laquelle se trouve le curseur de la souris.

    Merci et bonne année.
    j'aimerai savoir ...

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par msuire Voir le message
    Sûrement un truc tout bête, mais si quelqu'un peut m'éclairer...

    Je cherche à connaitre les coordonnées (Colonne, Ligne) de la cellule sur laquelle se trouve le curseur de la souris.

    Merci et Bonne année.
    TStringGrid.MouseToCell() ?

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    Hello,
    Citation Envoyé par msuire Voir le message
    Je cherche à connaitre les coordonnées (Colonne, Ligne) de la cellule sur laquelle se trouve le curseur de la souris.
    sur un clic ou sur survol ?
    sur un clic exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TMainForm.StringGridClick(Sender: TObject);
    begin
      Statusbar.SimpleText := Format('Column %d, row %d, text: "%s"',
        [StringGrid.Col, StringGrid.Row, StringGrid.Cells[StringGrid.Col, StringGrid.Row]]);
    end;
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 324
    Points : 4 134
    Points
    4 134
    Par défaut Il y en a aussi dixit les tontons flingueurs.
    Bonjour,

    Le grid propose également une méthode MouseToCell qui fonctionne bien avec les onMouseOver, onMouseDown etc. Il faut que les coordonnées X, Y de la souris aient été transposées dans la zone client du grid comme c'est le cas avec ces méthodes.

    Salutations.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  5. #5
    Membre du Club
    Profil pro
    Retraité
    Inscrit en
    Avril 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2004
    Messages : 74
    Points : 69
    Points
    69
    Par défaut StringGrid et Souris
    Bonsoir,

    Merci de votre réponse rapide.

    La solution que vous me proposez est efficace, mais le menu popup que contient la StringGrid semble bloquer MouseToCell() ou StringGrid.Cells().
    Je ne sais pas comment contourner le problème pour avoir les coordonnées de la cellule située sous la souris quand je déclenche le sous-menu.
    Et je ne sais pas non plus me servir du paramètre Sender qui pourrait sembler utile.

    Désolé
    j'aimerai savoir ...

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    si il y a un menu popup affecté à la stringgrid, il faut ne plus l'affecter à la stringgrid et le déclencher sur l'événement MouseDown par exemple.
    voici un exemple :
    sur l'événement mousedown on affiche la ligne et la colonne de la StringGrid dans une barre de status et si c'est un click droit on affiche le menu popup :
    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
    procedure TMainForm.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
     
    var
      P: TPoint;
      Ligne,Colonne : Integer;
    begin
      StringGrid1.MouseToCell(X,Y, Colonne, Ligne);
      Statusbar.SimpleText := Format('Colonne %d, Ligne %d', [Colonne,Ligne]);
      if Button = mbRight then
      begin
        P.X := X;
        P.Y := Y;
        P := StringGrid1.ClientToScreen(P);
        PopupMenu1.PopUp(P.X, P.Y);
      end;
    end;
    Nom : StringGridPopup.PNG
Affichages : 251
Taille : 14,6 Ko


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre du Club
    Profil pro
    Retraité
    Inscrit en
    Avril 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2004
    Messages : 74
    Points : 69
    Points
    69
    Par défaut StringGrid et Souris
    Chapeau, vous ne dormez jamais, les gars.

    En tout cas merci beaucoup pour la réponse.

    Je pense que je vais arriver à m'en sortir avec cette nouvelle piste.

    Merci Jurassic.
    j'aimerai savoir ...

  8. #8
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 324
    Points : 4 134
    Points
    4 134
    Par défaut Espaces
    Bonjour,

    Il y a aussi ClientToParent(aPnt, Form1) qui permet repasser dans l'espace client du parent qui pourrait être le stringgrid avant d'appeler MouseToCell.

    Mes excuses à JP CASSOU : je n'avais pas vu sa proposition de MouseToCell.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  9. #9
    Membre du Club
    Profil pro
    Retraité
    Inscrit en
    Avril 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2004
    Messages : 74
    Points : 69
    Points
    69
    Par défaut StringGrid et Souris
    Bonne Année et merci à tous pour vos solutions qui m'ont bien aidé.

    Problème résolu.
    j'aimerai savoir ...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/02/2020, 17h12
  2. Réponses: 4
    Dernier message: 12/05/2016, 15h05
  3. [Lazarus] Déplacement de lignes d'un stringgrid avec la souris
    Par jjnoui dans le forum Lazarus
    Réponses: 22
    Dernier message: 03/02/2014, 00h28
  4. [StringGrid] Empecher le scroll de la souris
    Par okparanoid dans le forum Delphi
    Réponses: 3
    Dernier message: 26/05/2007, 10h42
  5. stringgrid et clic droit de la souris
    Par didier17062006 dans le forum C++Builder
    Réponses: 4
    Dernier message: 11/11/2006, 10h01

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