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 :

TShape et click gauche


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut TShape et click gauche
    Bonjour,

    J'ai une question : Est-il possible de faire un clik gauche sur un TShape ? Car d'apres ce que j'ai vu, on peut seulement faire un click droit.

    Voici un bout de code qui me pose mon second probleme :

    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
    17
    18
    19
    	for (int PosV = 0; PosV < MaxV; PosV++)
    	{	for (int PosH = 0; PosH < MaxH; PosH++)
    		{	ColorNo[PosH][PosV] = new TShape (this);
    			ColorNo[PosH][PosV]->Parent = this;
     
    			ColorNo[PosH][PosV]->Left = InitH + PosH * (LargBt + EspaceHor);
    			ColorNo[PosH][PosV]->Top  = InitV + PosV * (HautBt + EspaceVert);
    			ColorNo[PosH][PosV]->Width  = LargBt;
    			ColorNo[PosH][PosV]->Height  = HautBt;
    			ColorNo[PosH][PosV]->Pen->Width = 1;
    			ColorNo[PosH][PosV]->Shape = stCircle;
    			ColorNo[PosH][PosV]->Brush->Color = ColorTab[j];
    			ColorNo[PosH][PosV]->Name = "ColorNo" + IntToStr(InitH+j);
    			ColorNo[PosH][PosV]->OnContextPopup = ShapeContextPopup;
    			ColorNo[PosH][PosV]->Show();
    			j++;
    		}
     
    	}
    Je voudrais lui mettre dans le OnContextPopup ma fonction. Voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::ShapeContextPopup(TObject *Sender, TPoint &MousePos,
    	  bool &Handled)
    {
      ShowMessage("test");
    }
    Elle est déclaré dans le .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public:		// Déclarations utilisateur
    	__fastcall TForm1(TComponent* Owner);
    		 		  TShape *ColorNo[10][10];
     
    			void __fastcall TForm1::CreerSelection(int InitH, int InitV, int HautBt, int LargBt, int EspaceHor, int EspaceVert,int MaxV, int MaxH);
    		void __fastcall TForm1::ShapeContextPopup(TObject *Sender, TPoint &MousePos,
    		  bool &Handled);
    		};
    Mais j'ai une jolie erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [BCC32 Erreur] ufmMain.cpp(72): E2034 Impossible de convertir 'void (_fastcall * (_closure )(TObject *,TPoint &,bool &))(TObject *,TPoint &,bool &)' en 'TContextPopupEvent'
    Une idée du problème ?

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Bonjour,

    Citation Envoyé par seb2020 Voir le message
    J'ai une question : Est-il possible de faire un clik gauche sur un TShape ? Car d'apres ce que j'ai vu, on peut seulement faire un click droit.
    Regarde du coté des évènements OnMouseDown et OnMouseUp du TShape, le paramètre button de ces évènements te spécifie quel bouton de la sourie à été cliqué

    Citation Envoyé par seb2020 Voir le message
    Voici un bout de code qui me pose mon second probleme :

    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
    17
    18
    19
        for (int PosV = 0; PosV < MaxV; PosV++)
        {    for (int PosH = 0; PosH < MaxH; PosH++)
            {    ColorNo[PosH][PosV] = new TShape (this);
                ColorNo[PosH][PosV]->Parent = this;
     
                ColorNo[PosH][PosV]->Left = InitH + PosH * (LargBt + EspaceHor);
                ColorNo[PosH][PosV]->Top  = InitV + PosV * (HautBt + EspaceVert);
                ColorNo[PosH][PosV]->Width  = LargBt;
                ColorNo[PosH][PosV]->Height  = HautBt;
                ColorNo[PosH][PosV]->Pen->Width = 1;
                ColorNo[PosH][PosV]->Shape = stCircle;
                ColorNo[PosH][PosV]->Brush->Color = ColorTab[j];
                ColorNo[PosH][PosV]->Name = "ColorNo" + IntToStr(InitH+j);
                ColorNo[PosH][PosV]->OnContextPopup = ShapeContextPopup;
                ColorNo[PosH][PosV]->Show();
                j++;
            }
     
        }
    Je voudrais lui mettre dans le OnContextPopup ma fonction. Voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::ShapeContextPopup(TObject *Sender, TPoint &MousePos,
          bool &Handled)
    {
      ShowMessage("test");
    }
    Elle est déclaré dans le .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public:        // Déclarations utilisateur
        __fastcall TForm1(TComponent* Owner);
                       TShape *ColorNo[10][10];
     
                void __fastcall TForm1::CreerSelection(int InitH, int InitV, int HautBt, int LargBt, int EspaceHor, int EspaceVert,int MaxV, int MaxH);
            void __fastcall TForm1::ShapeContextPopup(TObject *Sender, TPoint &MousePos,
              bool &Handled);
            };
    Mais j'ai une jolie erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [BCC32 Erreur] ufmMain.cpp(72): E2034 Impossible de convertir 'void (_fastcall * (_closure )(TObject *,TPoint &,bool &))(TObject *,TPoint &,bool &)' en 'TContextPopupEvent'
    Une idée du problème ?
    Serait-il possible que se soit du fait que ton TPoint ne soit pas déclaré en const ? En tout cas pour le moment c'est la seul différence que je vois.

Discussions similaires

  1. Difficultés pour changer le curseur sur click gauche
    Par Cerambyx_Cerdo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/05/2008, 10h31
  2. J'ai un trou de mémoire (click gauche, click droit)
    Par AndreDvl dans le forum VB.NET
    Réponses: 7
    Dernier message: 20/01/2008, 14h05
  3. [VBA] Gerer Click Gauche
    Par Sami-33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/08/2007, 18h38
  4. simuler le click gauche de la souris
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/12/2006, 20h55
  5. [C#] Contextmenu Click gauche
    Par mbibim63 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/09/2006, 01h45

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