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 :

Evénement Mouse.. boutons gauche et droit


Sujet :

Langage Delphi

  1. #1
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut Evénement Mouse.. boutons gauche et droit
    Bonjour,

    Dans un événement MouseDown, MouseUp, etc .. je peux trouver d'ou vient le clic, avec le bouton gauche OU le bouton droit.

    Comment savoir si les deux sont pressés en même temps ?
    Le paramètre Button: TMouseButton me donne soit l'un, soit l'autre.

    Merci

  2. #2
    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 126
    Points
    13 126
    Par défaut
    As-tu essayé par GetAsyncKeyState ou GetKeyboardState ?

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par retwas Voir le message
    Comment savoir si les deux sont pressés en même temps ?
    Euh, c'est possible, ça ? Matériellement, j'entends : tu vas réussir à cliquer exactement au même instant à la femtoseconde près sur les deux boutons ?

    'fin bon, en admettant que tu y arrives (ce qui relèverait plus d'un coup de bol que d'une quelconque dextérité), il te faudrait un message spécifique, généré par la souris et remonté par le driver, or quand on regarde les liens passés par Andnotor il n'y a rien de tel.
    Bon courage...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    As-tu essayé par GetAsyncKeyState ou GetKeyboardState ?
    Je vais regarder merci

    Citation Envoyé par Jipété Voir le message
    Euh, c'est possible, ça ? Matériellement, j'entends : tu vas réussir à cliquer exactement au même instant à la femtoseconde près sur les deux boutons ?

    'fin bon, en admettant que tu y arrives (ce qui relèverait plus d'un coup de bol que d'une quelconque dextérité), il te faudrait un message spécifique, généré par la souris et remonté par le driver, or quand on regarde les liens passés par Andnotor il n'y a rien de tel.
    Bon courage...
    Si je tiens enfoncé le bouton droit, et que j'appuie sur le gauche, à cet instant les deux sont pressé. Dans ma classe je vais essayer de gérer ça manuellement avec les événements MouseUp et MouseDown pour savoir ce qui enfoncé et ce qui est relâché

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par retwas Voir le message
    Si je tiens enfoncé le bouton droit, et que j'appuie sur le gauche
    Tu fais cela "à l'ancienne" avec un booléen: "left_is_clicked" (à voir si tu as des problèmes de "concurrence")


    Dans la méthode OnMouseDown ->
    *) Si (bouton gauche appuyé) { left_is_clicked <- vrai; }
    *) Si ((bouton droit appuyé) && left_is_clicked) { /* ... */ }


    Dans la méthode OnMouseUp -> Si (bouton gauche appuyé) { left_is_clicked <- faux; }


    Édit:
    Citation Envoyé par Jipété Voir le message
    Ah, grillé par foetus, mais les grands esprits se rencontrent,

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par retwas Voir le message
    Si je tiens enfoncé le bouton droit,
    Tu auras généré un message RButtonDown

    Citation Envoyé par retwas Voir le message
    et que j'appuie [ensuite] sur le gauche,
    Ensuite tu vas générer un LButtonDown

    Citation Envoyé par retwas Voir le message
    à cet instant les deux sont pressés.
    Oui, tu peux essayer avec un booléen pour le premier bouton et un test sur ce booléen pour le second bouton, genre en pseudo-code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure FormMouseDown
    if Button = LButton then bLButDown := True;
    // et plus loin
    if Button = RButton and blButDown then // les deux sont appuyés
    Je te laisse gérer la valse des booléens en fonction des Down, Up, etc.

    On notera que ça ne correspond pas exactement à la définition d'origine,
    Citation Envoyé par retwas Voir le message
    Comment savoir si les deux sont pressés en même temps ?
    En même temps, chez moi, c'est comme quand au tiercé deux chevaux passent la ligne d'arrivée ensemble.

    Ah, grillé par foetus, mais les grands esprits se rencontrent,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Merci à vous deux pour votre solution

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

Discussions similaires

  1. [WD16] Mettre l'image d'un bouton à gauche ou à droite
    Par EriCstoFF dans le forum WinDev
    Réponses: 2
    Dernier message: 01/06/2011, 11h10
  2. Réponses: 0
    Dernier message: 14/03/2010, 19h38
  3. [Lazarus] [Windows Mobile 6 Standard] Implémenter boutons gauche et droite
    Par firlas dans le forum Lazarus
    Réponses: 0
    Dernier message: 27/10/2008, 16h42
  4. [Débutant] Bouton gauche bouton droit de la souris
    Par pompier21 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 07/10/2008, 16h09
  5. [tkinter] evenement : clique gauche et droit
    Par CaptainChoc dans le forum Tkinter
    Réponses: 2
    Dernier message: 15/10/2007, 15h07

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