Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

TMouseWheelEvent sur un composant TImage


Messages recommandés

bjr

je voudrais faire un zoom sur une image de mon appli avec la molette uniquement quand je suis sur mon composant TImage

comment créer un évènement OnMousseWheel sur mon composant TImage?

 

merci d'avance

Lien à poster
Partager sur d’autres sites

Salut,

 

Reponse courte et facile : Utiliser le OnMouseWheel du composant parent (en général la fenêtre de type TForm). Soit Form1 la TForm contenant le TImage Image1 :

 

void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled)
{
       POINT p1 = ScreenToClient(MousePos);
       RECT r = Image1->BoundsRect;
       if (PtInRect(&r,p1)) { // OnMouseWheel dans Image1 ?
            // Mettre le code du zoom ici
       } 

}

 

Sinon on peut fabriquer son propre composant et le dériver à partir de TWinControl, de façon à ce qu'il ait nativement l'événement OnMouseWheel.

 

TImage est un descendant de TGraphicControl. Il ne possède pas les attributs d'une fenêtre (descendants de TWinControl). Il ne peut pas traiter ce genre de message sans l'aide de son composant parent.

 

Une autre solution est de dériver une classe depuis TGraphicControl, et d'interférer avec les évenements de l'objet parent pour avoir son propre OnMouseWheel (avec une méthode similaire au code donné).

Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...