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 :

Provoquer plus rapidement OnMouseMove


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Provoquer plus rapidement OnMouseMove
    En cas de déplacement rapide du curseur, deux évènements successifs OnMouseMove se déclenchent avec des positions de curseurs assez éloignées l'une de l'autre, ce qui me pose des problèmes pour mon soft de dessin.
    Est-il possible de déclencher plus rapidement OnMouseMove ?
    J'utilise D7.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Il faudrait essayer de configurer la souris par Menu Demarrer / paramètres / panneau de configuration / souris et augmenter la vitesse du pointeur dans le volet "options du pointeur"

  3. #3
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    surtout optimiser ton code...

    utiliser des images transparentes ralenti vachement ainsi que la fonction doublebuffed

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    En effet, si il y a un tracé "lourd" à chaque mousemove, ça peut expliquer le problème.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Points : 85
    Points
    85
    Par défaut
    il faut que tu augmentes le nombre de messages renvoyé par la souris

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Celà n'a pas à voir avec la "lourdeur" du tracé. L'évènement On mouseMove est déclenché lorsque:
    1) La position du curseur a bougé d'une distance minimale (tout va bien)

    et (et c'est là mon problème)
    2) lorsq'un intervalle minimum de temps s'est écoulé depuis le déclenchement du précédent On MouseMove.
    Lorsqu'on écrit un petit programme pour tester celà sur une fiche vide, on peut voir que le curseur peut s'être déplacé de 100 pixels (même si aucune tâche n'est effectuée) entre deux OnMouseMove.
    Le lien donné par The_Magik_Mushroom "pointe" sur un codeur qui a généré (par interpolation linéaire) des évènements OnMouseMove intermédiaires entre deux évènements OnMouseMove "réels".
    Mais ça ne résout pas mon problème, de pouvoir tracer de "belles" lignes bien "courbes", suivant fidèlement la position du pointeur, même s'il se déplace rapidement. Mes belles lignes courbes restent affreusement polygonales et anguleuses.
    J'aimerais réduire (momentanément) l'intervalle entre deux instants successifs où le système décide s'il va déclencher un OnMouseMove. Et tout celà, (car il faut être exigeant...) sans trop manger de ressources processeur.
    Auriez-vous encore quelques bonnes idées ?

  7. #7
    Membre régulier Avatar de yoghisan
    Profil pro
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 113
    Points
    113
    Par défaut
    Tu ne peux pas reprendre l'idée de la source proposée par the_magik_mushroom mais au lieu de faire une interpolation linéraire entre deux points faire plutot une interpolation polynomiale d'ordre n sur les n derniers points de la position de la souris ?

    Plus n sera grand plus ta courbe sera précise mais plus ca sera "lourd"...

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Je creuse un peu l'idée de yoghisan en regardant du côté des courbes de Béziers.
    Peut être aussi en bricolant un timer.
    Merci pour les conseils

  9. #9
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Pour mesurer la différence de temps, mieux vaut utiliser la fonction gettickcount (18ms sauf error par tickcount) plutot que la fonction "now".

    Autre piste : les événements mousemove n'étant pas "datés" par Windows, il est possible qu'un nombre important d'événement soit empilés par l'OS avant que l'appli ait la main.

Discussions similaires

  1. recherche arborescence plus rapide
    Par e-steel dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 30/01/2006, 16h22
  2. Réponses: 16
    Dernier message: 19/05/2005, 16h20
  3. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46
  4. [VB6] timer plus rapide que 1 d'interval
    Par windob dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/02/2004, 00h16
  5. Réponses: 8
    Dernier message: 31/10/2003, 16h21

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