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 :

[Problème Event MouseUp C++ Builder]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Par défaut [Problème Event MouseUp C++ Builder]
    Bonjour,

    j'aimerais récupérer les coordonnées des cellules d'un StringGrid sur un click.

    En parcourant l'aide, je suis tombé sur ce bout de code là :
    (sur l'évènenement MouseUp de la StringGrid1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::StringGrid1MouseUp(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
    long Column, Row;
      StringGrid1->MouseToCell(X, Y, Column, Row);
      StringGrid1->Cells[Column][Row] = "Col " + AnsiString((int)Column) + "Row " + AnsiString((int) Row);
    }
    Or, il s'avère que ce code ne marche pas du tout.
    A l'éxécution du programme, même après un click sur le StringGrid, rien ne se passe.

    Ai-je oublié quelque-chose ? (du genre goEditing à True ?)

    Merci d'avance,
    Nuclear.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello,

    Dans l'inspecteur d'objet, est-ce que l'événement OnMouseUp de ton TStringGrid est bien renseigné ??

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Chez moi ce code fonctionne (goEditing à false):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int ACol;
    int ARow;
    StringGrid1->MouseToCell(X,Y,ACol, ARow);
    if((ACol != -1) && (ARow != -1))
        {
        StringGrid1->Cells[ACol][ARow] = "Col " + IntToStr(ACol) +
                                         "Row " + IntToStr(ARow);
        }
    Par contre ... si cette méthode a été affectée à une autre StringGrid, dans ce cas, il faut opérer sur le sender ... mais je pense que ça, tu le sais !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TStringGrid *SG = (TStringGrid*)Sender;
    int ACol;
    int ARow;
    SG->MouseToCell(X,Y,ACol, ARow);
    if((ACol != -1) && (ARow != -1))
        {
        SG->Cells[ACol][ARow] = "Col " + IntToStr(ACol) +
                                "Row " + IntToStr(ARow);
        }
    A plus !

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonsoir,

    Du moment que tu clique sur la cellule, tu peux récupérer directement la ligne et la colonne par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int rw, cl ;
    rw = StringGrid1 -> Row ;
    cl = StringGrid1 -> Col ;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Par défaut [déclaration invalide]
    Bonjour,

    tout d'abord merci de vous être penchés sur mon problème !

    Finalement, ce petit bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StringGrid1->MouseToCell(X, Y, Column, Row);
      StringGrid1->Cells[Column][Row] = "Col " + AnsiString((int)Column) + "Row " + AnsiString((int) Row);
    ne marche que si on déclare Column et Row en int.
    Aussi étonnant que cela puisse paraître, un exemple directement tiré de l'aide de Builder 6 les déclarait en long. Alors que les explications à proprement parler quant à cet exemple soulignaient l'obligation d'une déclaration en int.

    Mea culpa !
    Voilà, c'est tout

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

Discussions similaires

  1. problème event checkboxlist
    Par Kamishu dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/03/2017, 16h22
  2. Problème test application C++ Builder 6 avec C++ Builder 5
    Par dark0502 dans le forum C++Builder
    Réponses: 0
    Dernier message: 17/12/2007, 12h18
  3. [Forms]probléme radio_button sous forme builder
    Par selabd dans le forum Forms
    Réponses: 4
    Dernier message: 03/04/2007, 16h11
  4. TRichEdit - Lancer event MouseUp
    Par chrisofbx dans le forum Delphi
    Réponses: 5
    Dernier message: 20/12/2006, 12h48
  5. problème event.keyCode Firefox
    Par Tdeny dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/07/2006, 17h48

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