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

Composants VCL Delphi Discussion :

Survolement d'un Timage


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Par défaut Survolement d'un Timage
    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.

  2. #2
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    C'est l'évènement onMouseMove
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Par défaut
    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.

  4. #4
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    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

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    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 !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Par défaut
    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 ?

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    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

  8. #8
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    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.

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    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

  10. #10
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    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.

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    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

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Par défaut
    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.

  13. #13
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    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

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 11
    Par défaut
    Merci beaucoup avec tous vos précieux conseils je devrai m'en sortir !

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

Discussions similaires

  1. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  2. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 14h37
  3. vider un timage
    Par gIch dans le forum Composants VCL
    Réponses: 2
    Dernier message: 23/08/2002, 23h58
  4. TImage
    Par Thylia dans le forum C++Builder
    Réponses: 5
    Dernier message: 09/07/2002, 20h03
  5. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36

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