Bonjour, j'aimerai modifier le comportement de mon Timage lorsque la souris passe dessus mais je ne trouve pas l'evenement pour le faire. Si quelqu'un pouvait m'aider.
Bonjour, j'aimerai modifier le comportement de mon Timage lorsque la souris passe dessus mais je ne trouve pas l'evenement pour le faire. Si quelqu'un pouvait m'aider.
C'est l'évènement onMouseMove
MD Software
---------------------------
F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi
Merci beaucoup pour la rapidité.
J'ai juste un probleme avec cet evenement car meme quand je bouge la souris autre part sur ma form et bien l'image change.
Dans OnMouseMove, j'ai mis Image.Picture.loadfromfile('mon_image') mais je voudrai que la nouvel image apparaissent seulement quand la souris passe dans le Timage.
Tu n'as pas mis l'évènement dans ton TImage si le changement s'effectue quand la souris bouge ailleurs
MD Software
---------------------------
F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi
pour ce que tu veux faire, il vaudrait pê mieux utiliser le OnMouseEnter et le OnMouseLeave (si le TImage les supporte...)
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
oui effectivement j'avais pas placé l'evenement dans le bon Timage. Merci beaucoup pour cette aide. Mon dernier petit probleme est que quand je bouge la souris dans mon Timage je charge l'image voulue mais comment faire pour que quand la souris sort de la zone mon image initiale revienne ?
Salut
Si ton image est sur une TForm ou un TPanel, tu n'a qu'à remettre la bonne image dans leur OnMouseMove![]()
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
Bonjour,
A ma connaissance, il n'y a aucune "bonne" solution pour faire disparaitre l'image POPUP (ou tout autre composant activé par un mousemove) une fois que la souris a quitté la zone.
2 cas :
- forme avec juste qq composants : faire disparaitre l'image POPUP sur le onmousemove des autres composants (un seule procédure suffit pour tous les composants),
- forme complexe pouvant évoluer : mettre un timer qui teste la position de la souris. Si le curseur n'est plus sur l'image ou sur l'image POPUP, faire disparaitre l'image POPUP.
A la limite, une meilleure solution serait de créer toi même un composant héritant de TImage dans lequel tu ajouterais une propriété Bitmap (la fameuse image "Popup") et tu intercepterais les évènements OnMouseEnter et OnMouseLeave![]()
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
Bonjour,
L'idée de Pedro est bonne, mais le seul composant (Delphi 6) qui implémente le onmouseenter/onmouseleave est un TcustomLabel -je l'ai jamais employé-. Il faudrait alors overrider sa fonction "DoDrawText" afin d'afficher les images dans son canvas.
Non pas du tout, il faut intercepter les messages Windows CM_MOUSEENTER et CM_MOUSELEAVE![]()
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
ouhla l'idée de crée un composant héritant de Timage ne m'enchante pas au premier abord vu mon niveau de connaissance en delphi. Le probleme que je rencontre en rechargeant mon fond dans la form lorsque la souris quitte la zone de mon Timage est que du coup a chaque fois que je bouge la souris l'image se recharge et c'est moche, a chaque fois que je bouge la souris on voit tres nettement l'image se recharger enfin cette méthode n'est pas possible. Il faudrait que je puisse tester si l'image actuelle est l'image de fond auquel cas je ne fais rien et si l'image a changé entre temps je recharge l'image de fond. J'espere avoir été un minimum clair.
Utilise une variable booléenne que tu mets à true lorsque tu passes sur le TImage, et si elle est à true, ne pas redessiner l'image. Remet-là à false lorsque tu en sors![]()
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
Merci beaucoup avec tous vos précieux conseils je devrai m'en sortir !![]()
Partager