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 :

Detecter clic de souris


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Detecter clic de souris
    Bonjour à tous !!
    Malgré mes recherches sur le net, je n'ai pas réussi à trouver une réponse précise à ma question alors me voiçi.

    Je voudrais en effet detecter le clic d'une souris sur un carré précis.

    En effet j'ai crée un carré basique qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      glColor3f( 5.0, 5.0, 5.0 );
      glBegin(GL_QUADS);
      glVertex3f( -100 ,-50, 0);
      glVertex3f( -100, 0, 0);
      glVertex3f(-50, 0, 0);
      glVertex3f( -50, -50, 0);
      glEnd();
    ( à savoir que je travaille avec opengl ).

    J'ai entendu dire qu'il fallait convertir ces coordonnées en pixel, j'ai alors mis mon origine tout en bas à gauche de mon écran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gluOrtho2D(0, longueur, 0, largeur);
    avec 1024 en longueur et 768 en largeur.

    j'ai X et Y qui enregistre la position de ma souris :

    et je voudrais que si je clic sur mon carré ma procédure change_case ( dont le but n'est pas important ici ) sera executée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if glfwgetmousebutton(glfw_mouse_button_left) = 1 then
        begin
         if  /* X compris entre -100 et - 50 et Y compris entre -50  et 0 */ then
             change_case;
        end;
    quel est le coefficient avec lequel je dois multiplier mes coordonnées pour leur donner la valeur en pixel ?

    j'ai essayé de multiplier les X par (X*1024)/200 et les Y par (Y*768)/500

    A savoir que lorsque j'ai mis mon origine en bas à gauche, j'ai du faire un
    glTranslate(650,350,0) à mon carré pour qu'il soit au centre de l'écran, celà influe-t-il à la coordonnée ?

    Merci pour vos réponses, en ésperant avoir été assez clair.

  2. #2
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    t'a une action "onMouseclick" dans les TObject elle te donne la position de la souris avec, t'as plus qu'à comparer avec la position de ton carré
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse rapide !

    J'ai en effet résolu mon problème et je vous en remercie !

    J'aurai une autre question : quand je clic avec la souris le cli étant trop sensible ( quand je clic une fois on à l'impression que j'ai cliqué 4 à 5 fois ) comment trouver la solution à ce problème ?

  4. #4
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    il y a des attribut bonton pressé, bouton relaché
    il faut prendre en compte le relachement du bouton
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai cherché sur le net et je ne trouve pas...

    Saurait-tu où je peux trouver ces attributs, et je ne code pas en objet mais en fonctionnel, celà posera-t-il un problème ?

  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 263
    Points
    3 263
    Par défaut
    Je ne connais pas opengl mais puisqu'il a été dit "t'a une action "onMouseclick" dans les TObject" tu as certainement une autre action (événement) "onMouseUp" qui permet de prendre en compte le relâchement du bouton.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 965
    Points
    6 965
    Par défaut
    Citation Envoyé par Huso-San
    J'ai cherché sur le net et je ne trouve pas...

    Saurait-tu où je peux trouver ces attributs, et je ne code pas en objet mais en fonctionnel, celà posera-t-il un problème ?
    Cherche picking dans le forum http://www.developpez.net/forums/forumdisplay.php?f=53.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

Discussions similaires

  1. Detecter clic de souris a l'ecran
    Par francky500 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 17/02/2006, 15h07
  2. Emuler et detecter un clic de souris (G, D, mollette)
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2005, 17h25
  3. Detection clic sur bouton precedent
    Par shaun_the_sheep dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 20/10/2004, 17h18
  4. Réponses: 2
    Dernier message: 12/07/2004, 11h43
  5. Selection par clic de souris
    Par bilbonec dans le forum OpenGL
    Réponses: 7
    Dernier message: 16/04/2004, 00h25

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