Einzelnen Beitrag anzeigen

helgew

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

Re: Mouse Wheel Down / Up : 2 Impulse ?

  Alt 1. Dez 2009, 01: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