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

Langage Delphi Discussion :

Intercepter un clic de souris avec TApplicationEvent..


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut Intercepter un clic de souris avec TApplicationEvent..
    ... c'est possible ? Sans doute, mais comment ?

    Merci.



    JJE.

  2. #2
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Si l'application qui surveille est la plupart du temps au repos, un test de l'état de la souris dans un OnIdle ? Un peu tordu, et ne marchera de toute façon pas si l'appli effectue un traitement...

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut
    Merci pour ta réponse CapJack.

    En fait, ce que j'aurais souhaité, c'est de connaitre la manière dont un contrôle a été quitté. En d'autres termes, lorsqu'un contrôle perd le focus, est-ce la conséquence d'un appui sur la touche <TAB> ou est-ce la conséquence d' un clic de souris sur un autre contrôle ?



    JJE

  4. #4
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Ah zut ! J'avais zappé OnMessage... il y a sans doute moyen de s'en servir !

    Edit : yes !

    Voilà un code tout bête qui marche, en collant un TMemo et deux ou trois TEdit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
    begin
        if Msg.message = WM_LBUTTONDOWN then
        begin
         Memo1.Lines.Add('Souris !');
        end;
        if Msg.message = WM_KEYDOWN then
        begin
         Memo1.Lines.Add('Clavier !');
        end;                      // TApplication
    end;
    Après c'est juste une histoire de mémoriser le dernier évènement qui s'est produit dans une variable, et de s'y référer au moment du OnEnter des contrôles.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut
    Magnifique !

    Merci CapJack



    JJE

  6. #6
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Ben, de rien.

    Edit : 'Y a un truc auquel on n'a pas pensé : on peut aussi changer de focus avec le bouton droit de la souris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
    begin
        if ( Msg.message = WM_LBUTTONDOWN )
        or ( Msg.message = WM_RBUTTONDOWN )
           then
             begin
               Memo1.Lines.Add('Jour !');
             end;
        if Msg.message = WM_KEYDOWN
           then
             begin
               Memo1.Lines.Add('Nuit !');
             end;
    end;
    Désolé de ne pas y avoir pensé tout de suite.
    - CapJackouille -

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

Discussions similaires

  1. [Sources] Positionnement et clic souris avec API "mouse_event"
    Par DAUDET78 dans le forum Vos contributions VB6
    Réponses: 0
    Dernier message: 01/05/2008, 13h43
  2. Rafraichir OnPaint() avec clic de souris
    Par dragongia_fr dans le forum MFC
    Réponses: 2
    Dernier message: 27/04/2008, 13h39
  3. Réponses: 1
    Dernier message: 13/05/2007, 15h34
  4. Réponses: 4
    Dernier message: 10/09/2006, 19h06
  5. Réponses: 7
    Dernier message: 27/06/2005, 22h05

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