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 :

Utilisation TPopupMenu sur TImage


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut Utilisation TPopupMenu sur TImage
    Bonjour,
    Y a t'il une solution pour connaitre sur quel objet a été déclenché l'événement OnClick d'un menu popup.
    Dans le PopupOnClick(TObject *Sender), le sender correspond au TPopup ou à l'objet sur lequel j'ai cliqué ?

    Dans mon cas le PopupOnClick se déclenche sur un TImage, je voulais récupérer la taille de cette image de la façon suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TFrm_Main::PpM_ProcNG2Click(TObject *Sender)
    {
            TImage *Image = (TImage *)Sender;
            x = Image->Width;
    }
    Mais ça n' a pas l'air de fonctionner.

    Merci de vos réponses et suggestions.

    A+.

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut Franck26,

    Premièrement, met ton code dans les balises [CODE].

    Deuxièment, va voir le post suivant: http://www.developpez.net/forums/sho...d.php?t=228386

  3. #3
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Bonsoir,

    On peut imaginer :
    . Un fonction commune pour les OnMouseMove des TImage :
    - dans le .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    __published:	// Composants gérés par l'EDI
    void __fastcall GenImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
    
    private:	// Déclarations de l'utilisateur
    TImage *pIm;
    - dans le .cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm2::GenImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
    TPoint ppoint;
    ppoint.x = X;
    ppoint.y = Y;
    if ( PtInRect(&rect, ppoint)!= 0 )
    {
    	this->pIm = (TImage*)Sender;
    }
    }
    Dans l'inspecteur d'object, tous les évènements OnMouseMove des TImages doivent désigner GenImageMouseMove.
    Dans le OnClick d'un des Items du PopupMenu, on peut écrire :
    (ici l'item s'appelle 'Essai')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall TForm2::Essai1Click(TObject *Sender)
    {
    ShowMessage(this->pIm->Name);
    }
    Et, a priori, cela fonctionne ...

    En espérant t'aider,
    @ +

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut
    Merci Crayon pour l'indication des balises, c'est vrai que c'est plus propre.
    Sinon, je suis aller sur la discussion que tu m'as indiqué, mais je ne n'ai pas trouvé de solution pour mon cas.

    Je cherche a obtenir un pointeur sur l'image sur laquelle j'ai cliqué pour déclencher mon popup.

    Sunchaser, d'aprés ce que je comprend, tu me proposes de mémoriser le pointeur sur mon image quand je passe dessus avec la souris.
    Donc je suppose que c'est parce que dans le code suivant, qui est déclenché par OnClick de mon Popup, le sender n'est pas un pointeur sur l'objet sur lequel j'ai cliqué, c'est ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TFrm_Main::PpM_ProcNG2Click(TObject *Sender)
    {
            TImage *Image = (TImage *)Sender;
            x = Image->Width;
    }
    Si c'est le cas, je vais utiliser ta solution. En revanche je n'ai pas compris l'utilité du code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( PtInRect(&rect, ppoint)!= 0 )
    {
    	this->pIm = (TImage*)Sender;
    }
    C'est pour vérifier si la souris est bien sur l'image je suppose, mais que représente rect ?

    Merci a tous les 2.
    A+.

  5. #5
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Arrfff ....ou ai-je la tête moi ?



    On peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( PtInRect(((TImage*)Sender)->Canvas->ClipRect, ppoint)!= 0 )
    a la place ...

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Par défaut
    Ok, merci.
    Ca fonctionne, tout est résolu.
    A+.

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

Discussions similaires

  1. [CKEditor] Qui utilise FCKeditor sur son site php pour config ?!
    Par guy2004 dans le forum Bibliothèques & Frameworks
    Réponses: 62
    Dernier message: 26/10/2005, 18h24
  2. Réponses: 6
    Dernier message: 10/06/2005, 23h56
  3. Réponses: 2
    Dernier message: 30/11/2004, 09h42
  4. [Sybase] Utilisation indexes sur table Proxy
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 20/02/2004, 10h20
  5. [Utilisation Postgresql sur windows]
    Par xhercule dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/01/2004, 18h36

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