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 :

Position de la souris dans une form


Sujet :

Delphi

  1. #1
    En attente de confirmation mail
    Inscrit en
    Février 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 40
    Points : 39
    Points
    39
    Par défaut Position de la souris dans une form
    Bonjour,

    J'ai besoin de connaitre précisément la position de la souris par rapport à ma form et non pas par rapport à l'écran.
    Je pensais faire quleque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    P := Mouse.CursorPos  ;
    edPosX.Text := IntToStr(P.X-form1.Left);
    edPosY.Text := IntToStr(P.Y-form1.Top);
    Mais ça ne fonctionne pas car il faut soustraire au coordonnées la taille de la bordure de la fenêtre et cette taille est différente suivant le thème du bureau (XP, windows classique ..).

    Avez-vous une idée ?

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Les valeurs données (X et Y pour la souris) dans l'évènement OnMouseMove de la TForm ne te conviennent pas ?

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Tu peux aussi utiliser les méthodes ScreenToClient et ClientToScreen pour convertir une position (type TPoint) absolue en position relative et inversement. Par exemple, pour obtenir la position relative de la souris sur la form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    P := Form1.ScreenToClient(Mouse.CursorPos);
    edPosX.Text := IntToStr(P.X);
    edPosY.Text := IntToStr(P.Y);
    Et pour réobtenir la absolue de P :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P := Form1.ClientToScreen(P);
    L'avantage de cette méthode, c'est que l'on peut choisir l'objet sur lequel on va se baser pour calculer la position. Par exemple, pour obtenir la position relative de la souris sur le Memo1 de Form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P := Form1.Memo1.ScreenToClient(Mouse.CursorPos);
    Plus de détails dans l'aide en ligne de Delphi (touche F1).
    à+
    De retour parmis vous après 10 ans!!

  4. #4
    En attente de confirmation mail
    Inscrit en
    Février 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Pour sunChaser : j'ai bien utilisé l'événement onMouseMove mais le X et Y (comme tu dis) de la souris étaient référencé par rapport à l'écran

    Pour Sub0 : merci

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

Discussions similaires

  1. Position des items dans une forme
    Par Nadjib dans le forum Forms
    Réponses: 2
    Dernier message: 14/03/2011, 10h35
  2. Position souris dans une figure
    Par yabbiyou dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 12/01/2010, 15h21
  3. Détecter la position de la souris dans une fonction
    Par polemoss dans le forum jQuery
    Réponses: 5
    Dernier message: 19/03/2009, 09h28
  4. Déterminer la position d'un UserControl dans une Form
    Par Delphi-ne dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 25/11/2007, 13h59
  5. [C#] utilisation de la souris dans une windows form
    Par dimmak dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/03/2006, 23h21

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