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 :

Hook sur un seul composant d'un TFrom


Sujet :

C++Builder

  1. #1
    Membre éprouvé

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut Hook sur un seul composant d'un TFrom
    Salut à tous,

    je souhaiterais faire un Hook sur un seul composant de ma fiche. Afin de récupérer toutes les actions souris et calvier dessus.

    Mon problème est : étant donné que les balises BEGIN_MESSAGE_MAP...END_MESSAGE_MAP sont a déclarer dans la TForm.

    Mon problème est donc de savoir si le message que je vais recevoir est bien destiné au TLabel sur lequel je veux faire les hooks et comment transmettre le message au bon composant s'il n'était pas destiné à ce TLabel hooké.

    Merci d'avance pour votre aide !
    Neilos

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    Dérive ton TLabel et créée un MessageMap dessus:

    Dans le unit.h fais :
    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
    20
    class myTLabel : public TLabel
    {
    private:	// Composants gérés par l'EDI  WM_DRAGDROP
        void __fastcall OnRBUTTONUP(TMessage& Msg);
    public:		// Déclarations de l'utilisateur
         __fastcall myTLabel(TComponent* Owner);
    BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_RBUTTONUP,TMessage,OnRBUTTONUP)
    END_MESSAGE_MAP(TLabel)
    };
     
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
        TLabel *Label1;
        myTLabel *myLabel;
    private:	// Déclarations de l'utilisateur
    public:		// Déclarations de l'utilisateur
        __fastcall TForm1(TComponent* Owner);
    };
    Dans le .ccp :

    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
     __fastcall myTLabel::myTLabel(TComponent* Owner)
        : TLabel(Owner)
    {
      // N'oublie pas de le mettre, sinon ça marche pas
       Parent = ((TLabel*)Owner)->Parent;
      // tes initialisations
      ........................... 
    }
    // Dans le TForm1
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
        myLabel = new myTLabel(Label1);
      .......................
    }
    void __fastcall myTLabel :: OnRBUTTONUP(TMessage& Msg)
    {
       MessageBox(NULL, "Got", "myLabel", MB_OK);
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre éprouvé

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Ok merci bpc !
    Neilos

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/04/2010, 08h06
  2. Réponses: 13
    Dernier message: 25/01/2005, 10h05
  3. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04
  4. ROLLBACK sur une seul enregistrement
    Par toctoc80 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/04/2004, 20h22
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

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