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 :

Evènement de souris "OnMouseWheelStop"


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Evènement de souris "OnMouseWheelStop"
    Bonjour,
    J'ai une petite appli dans laquelle je fais un traitement rapide mais provisoire quand on fait rouler la molette de la souris. Pour ça, c'est OK, j'utilise OnMouseWheel(...) Mais le Hic, c'est que je dois faire un traitement plus fin, dès qu' on arrête la manipulation de la molette. Ce serait facile s'il existait un évènement qu'on pourrait appeler "OnMouseWheelStop", mais voilà, j'ai pas trouvé, et je ne sais pas trop comment faire pour détecter la fin de la manip de la molette.
    Quelqu'un a-t-il une idée?

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Peux-tu nous en dire plus sur le traitement à effectuer? On pourrait essayer de voir s'il n'y a pas un autre moyen de faire ce que tu veux
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bon, comme tout le monde est resté trés sage, je vais vous faire part de la solution que j'ai trouvé.
    Elle utilise un timer dont l'intervalle a été réglé sur 200 milli sec.
    Ce qui correspond assez bien à l'intervalle de temps entre deux évènements MouseWheel.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    var WheelOn : boolean = false;
     
    procedure TForme1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
     
            TraitementProvisoireRapide; //
     
            WheelOn := true;
            Timer1.enabled := true; // Traitement Final dans OnTimer
            Handled := true;
    end;
     
    procedure TForme1.Timer1Timer(Sender: TObject);
    begin
        // détection de la fin d'activation de la molette
        if WheelOn then begin WheelOn:=false; exit; end;
     
        //ici la molette n'a pas été activée depuis Timer1.interval milli sec
        Timer1.enabled := false;
        TraitementFinal;
     
    end;
    Qui dit "MIEUX"?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/01/2005, 18h49

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