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 :

connaître la position du curseur sur le control parent


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut connaître la position du curseur sur le control parent
    Bonjour

    Je mets au point un nouveau composant visuel et j'aurais besoin de connaître la position du curseur au-dessus du contrôle parent ce qui déterminera le comportement de mon compo
    Un truc du genre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Property MonComposant.Parent.CursorPos:TPoint
    Si qqn peut me donner une piste
    Choisir, c'est renoncer...

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    tu pourrais faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    interface
      TComposant = class(TComponent)
      protected
       function GetParentCursorPos: TPoint;
      public
       property ParentCursorPos: TPoint read GetParentCursorPos;
      end;
     
    implementation
     
    function TComposant.GetParentCursorPos
    begin
      Result := Parent.ScreenToClient(Mouse.CursorPos);
    end;
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut Aka Guymelef

    En fait je n'ai pas correctement formulé mon pb
    Je souhaite que mon compo change d'aspect lorsque le curseur le survole
    Je veux donc détecter la présence du curseur au-dessus
    Pour ça j'ai l'événement OnMouseMove
    Mais je voudrais aussi qu'il reprenne son aspect initial quand le curseur "quitte" mon compo

    Or, j'ai besoin de sa méthode Paint
    Il me faut donc un descendant de TGraphic
    Et il n'y a pas d'événement OnExit
    En fait mas question est : comment détecter que le curseur quitte le compo ?
    Et merci pour...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parent.ScreenToClient(Mouse.CursorPos);
    Je garde ça chaud
    Choisir, c'est renoncer...

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Les versions récentes de Delphi ont les événements OnMouseEnter, OnMouseLeave.

    Si tu ne les as pas dans ta version, tu peux les coder comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
    Utilise la notification d'entrée plutôt que le OnMouseMove qui régénérera ton affichage beaucoup trop souvent .

  5. #5
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    WWWWWOOOUUUAAAAWWWWW !!!
    Des fois, y'a qu'à demander
    Mon D6 perso ne me permettait pas ça
    Merci Andnotor
    C'est au poil!
    Citation Envoyé par Andnotor
    Utilise la notification d'entrée plutôt que le OnMouseMove qui régénérera ton affichage beaucoup trop souvent
    Tout bon !!!
    Choisir, c'est renoncer...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/07/2008, 08h31
  2. Deplacer le curseur sur un controle
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 18/05/2008, 16h25
  3. Réponses: 5
    Dernier message: 06/04/2008, 13h09
  4. Récup position du curseur sur DSPF
    Par fspiecart dans le forum DB2
    Réponses: 1
    Dernier message: 20/12/2007, 17h18
  5. mettre la position du curseur sur un champ vide
    Par monphp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2007, 20h27

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