AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mouse Wheel Down / Up : 2 Impulse ?

Ein Thema von markus5766h · begonnen am 30. Nov 2009 · letzter Beitrag vom 1. Dez 2009
Antwort Antwort
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#1

Mouse Wheel Down / Up : 2 Impulse ?

  Alt 30. Nov 2009, 17:34
Hallo,
ich möchte eine Anwendung (genauer ein Menü) wahlweise auch per Mouse WheelDown/WheelUp steuern.
Soweit so gut ...
Ich bekomme je Radbewegung von einer Raststellung bis zur nächsten 2 Impulse (scheinbar wird
je die ansteigende und abfallende Flanke verarbeitet).
Hierzu meine Frage : ist dies bei jeder Mouse so ?
... oder hab' ich einen Exoten ?

Es ist zwar kein Problem die Impuls zu zählen und bei jedem zweiten das entsprechende Ereignis
auszulösen ... allerdings nur solange, wie die Antwort der Mouse immer 2 Impulse beträgt.

In Ermagelung einer Ersatzmouse hab' ich wenig Lust meine zu schlachten um mir die Elektronik anzuschauen
und hoffe daher auf entspr. Hilfe.

Danke schon mal im vorraus.
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Mouse Wheel Down / Up : 2 Impulse ?

  Alt 1. Dez 2009, 00:21
Normalerweise empfängt man doch die WM_MOUSEWHEEL Message.
Du bekommst die Richtung und die Anzahl der Schritte im Parameter wParam.
Allerdings hat ein Schritt 120 Einheiten (WHEEL_DELTA).
Offensichtlich wollte MS sich für die Zukunft offenhalten, dass es auch Mäuse mit höherer Auflösung geben könnte.
Für dich als Programmierer spielen die Internas der Maus keine Rolle.
fork me on Github
  Mit Zitat antworten Zitat
helgew

Registriert seit: 30. Jul 2008
125 Beiträge
 
#3

Re: Mouse Wheel Down / Up : 2 Impulse ?

  Alt 1. Dez 2009, 00:48
Hi Markus,

es kommt darauf an, wo und wie du messages verarbeitest. Manchmal tritt ein solches Verhalten dadurch auf, dass eine Nachricht nicht als verarbeitet gekennzeichnet wurde und dann dem default message handler in die Hände fällt, der damit noch einmal Schindluder treibt.

Wie sx2008 schon sagte, sollte man lieber die WM_MOUSEWHEEL message verarbeiten und danach als handled kennzeichnen, wenn dies noch nicht schon durch die prozedurale Handlerzuweisung im implementation-Teil getan sein sollte.

Wenn du mal was anderes mit dem Mausrad machst, das rechenintensiver ist, solltest du die messages akkumulieren ( du registrierst dir einen Timer, den du nach einmaligem Auftreten oder, wenn er noch gesetzt sein sollte, schon beim nächsten Auftreten der Mausradmessage gelöscht wird ) - das wird in der VCL wohl auch schon so gemacht, zumindest zeigt sie dieses Verhalten, nur nicht durchgehendm was mir nahelegt, dass die Akkumulation in der wndproc des Hauptformulars erfolgt. Ich könnte mich da auch irren und es ist anders gelöst, aber ich habe mit der Vorgehensweise gute Erfahrungen gemacht.

Zu deinem Problem nochmal: du kannst auch mal bei mousewheel, wheeldown und wheelup Töne ausgeben oder in eine Memo ausgeben, dann siehst du, welche events wie oft auftauchen.
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#4

Re: Mouse Wheel Down / Up : 2 Impulse ?

  Alt 1. Dez 2009, 07:07
Hallo, vielen Dank erst mal für die Antworten.

Hab' irgendwo noch 'nen Mouse-Hook rumliegen - werd' mir
damit mal die WM-Mouse-Botschaften ausgeben lassen (und zählen).
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Mouse Wheel Down / Up : 2 Impulse ?

  Alt 1. Dez 2009, 07:27
Hi,

http://www.bome.com/delphi/watch/

hier gibts ne dll mit Delphi source projekt, mit dem wird Maus und Tastatur und noch mehr gehookt, ziemlich cool funktioniert wunderbar, damit kann man auch die Codecs von MultimediaTasten auf Tastaturen etc rauskriegen, nur so als Tip.

Gruß

Tom
Tom
Just DO it
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz