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 :

Limite de contour avec la souris [FAQ]


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Limite de contour avec la souris
    Bonjour,

    je ne veux pas que le pointeur de la souris dépasse les bordures de mon logiciel... comment faire ?

    merci!

  2. #2
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par MarKo04
    Bonjour,

    je ne veux pas que le pointeur de la souris dépasse les bordures de mon logiciel... comment faire ?

    merci!
    Toi, tu participes au défi...

    Avec la fonction de l'API Windows ClipCusor, c'est faisable :

    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
    procedure RestreindreSouris(AControl:TControl);
    var ARect: TRect;
    begin
      if AControl<>nil then
      begin
        { Convertir les coordonnées de la fiche avec elles de l'écran }
        With AControl do
        begin
          ARect.TopLeft:= ClientToScreen(ClientRect.TopLeft);
          ARect.BottomRight:= ClientToScreen(ClientRect.BottomRight);
        end;
        // Limite le déplacement de la souris à la zone Client du contrôle.
        ClipCursor(@ARect);
      end else ClipCursor(nil);
    end;
    Exemples d'utilisation :

    Restreindre la souris à un Bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RestreindreSouris(Button4);
    A la Fiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RestreindreSouris(Form1);
    Libérer la souris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RestreindreSouris(nil);
    Bon dev

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci Bcp... Non je ne participais pas :p

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Shu encore capable de sortir le pointeur de la souris a l'extérieur de la form!

  5. #5
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par MarKo04
    Shu encore capable de sortir le pointeur de la souris a l'extérieur de la form!
    Ha ?
    Moi non

    Edit : ha oui, si la fiche est prêt de la barre des tâches... flute...

  6. #6
    Membre actif Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Points : 201
    Points
    201
    Par défaut
    Salut,
    En utilisant OnMouseMove et en testant la position du curseur tu dois bien pouvoir arriver à quelque chose assez facilement non ? C'est sûr c'est moin joli que la methode à waskol mais bon tant que sa marche...

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par MarKo04
    Shu encore capable de sortir le pointeur de la souris a l'extérieur de la form!
    Le code avec RestreindreSouris, tu l'as mis où ?

    En fait, windows semble désactiver la restriction dès qu'une nouvelle fenêtre ou un menu apparait.

    donc si tu arrives à confiner le curseur, et que tu appuies sur la touche windows, ton confinement disparait.

    Si tu met le code dans le OnCreate ou le OnShow, celà fonctionne bien jusqu'à ce que la fiche devienne visible...
    Donc pour contourner le problême, il faut mettre le code dans un évènement qui a lieu APRES que la fiche soit visible : dans le OnActivate par exemple.

    Bref, c'est pas mon code qui ne marche pas, c'est Windows, non mais !

Discussions similaires

  1. [C#] Déplacer un composant avec la souris
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/04/2011, 23h12
  2. Detection de contour avec click de souris
    Par fAdoua123 dans le forum Interfaces Graphiques en Java
    Réponses: 15
    Dernier message: 24/04/2007, 00h31
  3. Déplacer un panel avec la souris
    Par Harry dans le forum Delphi
    Réponses: 14
    Dernier message: 05/06/2006, 19h18
  4. Limiter les déplacement de la souris a la fenetre
    Par Mathieu.J dans le forum OpenGL
    Réponses: 22
    Dernier message: 11/06/2004, 12h55
  5. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56

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