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

Delphi Discussion :

comment savoir si le curseur de la souris est immobile?


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut comment savoir si le curseur de la souris est immobile?
    Bonjour,

    ma question est donc: comment savoir si le curseur de la souris est immobile?

    en effet je veux afficher une image au bout d'un certain temps si le curseur reste immobile tout au long de ce "certain temps".

    j'avais penser à un systéme qui lis en permanence les coordonnées du curseur et les copie dans une variable et compare ensuite si les varaibles restent identiques ou non aux valeurs lues.

    Mais ce systéme me semble assez compliqué et je me dit qu'il doit bien avoir un moyen plus simple. Je m'en remet donc à vous.

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    TApplicationEvent et evenement OnMessage.
    Teste le message WMMouseMove pour tester la position de X et Y.

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Voire meme les property X et Y de l'objet global Mouse ......

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Ou encore sous forme d'un object surveillé par un timer :

    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
     
    type oSouris = Object bG,bD : integer;
                          p     : tPoint;
                          H     : HWnd;       
                       end;
     
    var  Souris : oSouris; 
     
    procedure TForm5.Timer1Timer(Sender: TObject); 
    begin        Souris.H:=GetCapture; // handle du truc sous la souris
     
                 Souris.bG:=getAsyncKeyState(VK_LButton); // pour savoir si on a cliqué sur le bouton Gauche de la souris
                 Souris.bD:=getAsyncKeyState(VK_RButton); // idem pour le bouton Droit de la souris
     
                 GetCursorPos(Souris.p); // YSouris = Souris.p.y et XSouris = Souris.p.x = Positions X et Y de la souris à l'instant "T"
    end;
    ... et pour l'utilser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
             var Xini,Yini : integer;
             .......
             Xini:=position initiale de la souris
             Yini:= idem 
             .......
             if (Souris.p.y <> Yini) or (Souris.p.x <> Xini)
             then showMessage('Il a bougé la souris !');
             ......

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Pourquoi creer un objet la ou Delphi en propose un tout fait : Mouse : TMouse

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    A Clorish
    Pourquoi creer un objet la ou Delphi en propose un tout fait : Mouse : TMouse
    .. j'avais créé cet object pour détecter n'importe où le click-Gauche/Droit de la souris et en même temps j'y ai encapsulé l'équivalent de Capture et de CursorPos de TMouse (et le timer surveillait en plus d'autres getAsyncKeyState(VK_...) )
    ... mais si fred7 n'est actuellement intéressé que par l'immobilité de la souris alors le TMouse standard lui suffit ... par contre le reste peut intéresser sa curiosité.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    merci pour vos réponse!! je suis satisfait à 300% lol

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

Discussions similaires

  1. Réponses: 28
    Dernier message: 29/07/2006, 16h04
  2. [jtable] Comment savoir si le curseur est dans la cellule?
    Par doudine dans le forum Composants
    Réponses: 2
    Dernier message: 23/01/2006, 16h34
  3. Comment savoir si le bouton d'une fenêtre est enfoncé ?
    Par Lecerf dans le forum Composants VCL
    Réponses: 7
    Dernier message: 21/09/2005, 19h38
  4. Réponses: 19
    Dernier message: 26/01/2005, 10h41

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