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 :

Gérer l’événement clic droit


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut Gérer l’événement clic droit
    Bonjours tout le monde, je ne trouve pas dans la liste event de ma grille l’événement clic droit.

    Il y a bien onclic, double clic, mais je ne trouve pas clic droit est ce que quelqu’un saurait comment gérer ce ci ....

    Merci d’avance a tous....

  2. #2
    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
    Salut,

    Ben, pour savoir si l'utilisateur de ton application a bien fais une Clique droit sur un composant (pas tous) il suffit de tester dans l'évenement OnMouseUp le paramètre Button si'il est égale à mbRight.

    Donc MouseUp / TMouseButton +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TFm_Update_Depart::GridMouseUp(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     if(Button == mbRight)
       {
         ShowMessage("TMouseButton") ;
       }
    }

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    oki merci kmaniche


    J'esseye ça des ce soir...

  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
    N'oublis pas

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut
    salut,tu peux essayer ça aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TForm1::NomGrilleMouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     
    if (Shift.Contains(ssRight))
    {
     
    	ShowMessage("TMouseButton");
    }
    }
    bonne chance

  6. #6
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Salut

    J'ai inséré ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::NomGrilleMouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     
    if (Shift.Contains(ssRight))
    {
     
     DrawGrid1->Canvas->Brush->Color = clRed;
     
    }
    }
    et ça marche pas, il ne se passe rien quand je clic droit sur une case de ma grille....


    J'ai également test avec la primière void propsé, il ne se passe rien non plus

    J'ai assigne a l'event OnMouseUp la void GridMouseUp et rien ne ce passe

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Par défaut
    Bonjour les Amis,

    J'ai essayé cette commande sur deux cas possibles:
    1° Sur le Tform, j'ai réalisé un clic avec demande d'affichage si la commande est bien pris en compte
    EVENEMENT OnMouseUp
    -> Cela fonctionne correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
       ShowMessage("Clic Droit ACTIVE");
    }
    2° Sur le Tform, j'ai mis TEdit. Sur l'évenement OnMouseUp, j'ai applique le code de kmaniche.
    Le résulat est le suivant : une fenêtre s'ouvre dans laquelle se trouve tous les commande pour faire un collé , un coupé etc...
    Et le Message TMouseButton s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TForm1::Edit1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
    if(Button == mbRight)
       {
         ShowMessage("TMouseButton") ;
       }
    }
    En conclusion , tout fonctionne Bon Courage à tous....

  8. #8
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Salut

    Donc c'est presque bon j'ai fait ce que vous avez dit, j'arrive à afficher un message quand je fait un clic droit par contre ce que je voudrai c'est changer la couleur d'une seule case de ma Draw grille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::GridMouseUp(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
       int X=DrawGrid1->Col;
       int Y=DrawGrid1->Row;
     
     if(Button == mbRight)
       {
        ShowMessage("Affiche un message") ;
        DrawGrid1->Canvas->Brush->Color = clRed;
     
       }
     }
    Le message s'affiche parfaitement mais par contre le changement de couleur sur la case voulu, lui ne marche pas.

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Je ne suis pas sûr, mais j'ai l'impression que tu devrais plutôt intercepter le OnPaint (ou OnCustomPaint, je ne sais pas de quelle grille tu parles) pour changer la couleur de la Brush. Le OnMouseDown ne dessine pas la case... Il ne fait qu'intercepter le clic.

    Ca complique un peu la chose puisque tu dois intercepter le OnMouseUp pour retrouver quelle case a été sélectionnée et sauver cette info qqpart. Ensuite, dans OnPaint, tu vérifies quelle case est en train d'être dessinée et tu adaptes la couleur si c'est celle qui avait été cliquée.

    Quel est le composant exact que tu utilises?

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    nurbo_2056 je te propose d'ouvrir une deuxième discussion concernant ton deuxième problème (changer la couleur d'une case de la grille).

    De garder un seul problème par thread permet ensuite de rendre la recherche plus efficace.
    Tu peux donc marquer ce sujet résolu et une fois que tu auras copié ta deuxième question dans un nouveau thread, je la supprimerais d'ici.

    Merci d'avance !

Discussions similaires

  1. Gérer le clic droit sur un xtype box
    Par edblv dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 09/09/2014, 16h28
  2. Clic droit/gauche souris
    Par Mouse! dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/05/2013, 20h34
  3. Réponses: 2
    Dernier message: 26/11/2006, 21h10
  4. Evènement sur clic droit !?
    Par soccersoft dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2002, 21h39
  5. gérer le clic gauche-droite en même temps de la sou
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2002, 22h52

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