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

Composants VCL Delphi Discussion :

Changement curseur souris


Sujet :

Composants VCL Delphi

  1. #1
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 325
    Par défaut Changement curseur souris
    Bonjour à tous. Une petite question qui va surement paraitre basique :
    J'ai mis en place le déplacement d'un tImage dans un tScrollBox, à l"aide de la souris. Tout fonctionne correctement, :
    - onMouseDown pour gerer le debut du déplacement (sans tenir compte du bouton appuyé)
    - onMouveUp pour la fin
    - onMove avec un tTimer pour déplacer l'image.

    Ma question intervient lorsque, pour l'utilisateur, je décide de changer le curseur du tImage (idem sur celui du tScrollBox) en crDrag dans le onMoveDown, avec un retour en crDefault dans le onMoveUp.
    Les comportements :
    - avec le bouton gauche, le curseur ne change pas même si les évènements sont correctement exécutés.
    - avec les boutons central et droit, le curseur change uniquement conjointement avec le mouvement de la souris.
    Un petit affichage permet de contrôler que le code est correctement exécuté...

    Avez-vous une idée ?

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Bonjour

    Est-ce que par hasard tu as désactivé les propriétés liées au Drag&Drop natif ?

  3. #3
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 325
    Par défaut
    Merci pour ton intérêt.
    Non, le DragMode est resté à dmManual. Si je le passe en automatique, j'ai bien une interdiction (curseur et déplacement) avec le bouton gauche et toujours le même comportement avec les autres.
    ...
    J'ai créé un petit projet avec juste un tForm et les 2 procédures up et down de la souris. Sans changer aucun des paramètres standards, j'ai un résultat assez similaire :
    - Bouton gauche, toujours pas de changement,
    - Bouton central et droite, changement correct, c.à.d. dès que le bouton est activé, même si pas de déplacement.

    Je vais tester sur un autre PC et regarder du côté du driver de la souris...
    Cordialement

  4. #4
    Membre très actif
    Homme Profil pro
    libre
    Inscrit en
    Juin 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Juin 2019
    Messages : 205
    Par défaut
    Ma question intervient lorsque, pour l'utilisateur, je décide de changer le curseur du tImage (idem sur celui du tScrollBox) en crDrag dans le onMoveDown, avec un retour en crDefault dans le onMoveUp.
    Si votre application n'utilise que ces deux types de curseurs vous pouvez utiliser Screen.Cursor pour changer le curseur dans les éventements OnMouseDown et MouseUp par contre si il y a des contrôles avec d'autres comme les TEdit, TMemo .. qui affichent le crIBeam par défaut vaut mieux utiliser Windows.SetCursor uniquement dans l'evenement MouseMove pour changer le curseur vers crDrag ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       if [ssLeft, ssRight, ssMiddle] * Shift <> [] then // n'importe quel bouton 
           windows.SetCursor(Screen.Cursors[crDrag]);

  5. #5
    Membre expérimenté Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 325
    Par défaut
    Merci Wheel,
    ca marche nickel, ce qui est bien le but... même si je ne comprends pas bien ces différences de comportement.

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

Discussions similaires

  1. Changement curseur souris sur image
    Par thuglife dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2015, 13h41
  2. changement de curseur souris startdrag
    Par july-c-moi dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 19/04/2011, 09h26
  3. Changement curseur souris
    Par pjmorce dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 23/10/2007, 08h54
  4. Changement curseur souris
    Par pjmorce dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/10/2007, 13h48
  5. Réponses: 3
    Dernier message: 20/10/2005, 20h24

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