Windows 7 64Bit
Lazarus 1.6.4
Hallo zusammen,
beim Implementieren des Mausrades in meine Komponente habe ich eine Merkwürdigkeit festgestellt.
Alle 3 MouseWheel Ereignisse, werden 3 fach aufgerufen wenn die Komponente den Focus hat.
Das betrifft also:
OnMouseWheel
OnMouseWheelUp
OnMouseWhheDown
Das habe ich jetzt mit folgende Komponenten probiert:
TButton
TCheckBox
TRadioButton
Für meine Komponente habe ich jetzt die
procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
überschrieben und dann NICHT inherited aufgerufen, dann geht es.
Sobald ich jedoch inherited aufrufe gibts wieder eine 3 fach Auslösung sofern die Komponente den Focus hat.
Man kann jedoch in den OnMouseWheel... Ereignissen die Rückgabevariable "Handled" auf TRUE setzen, dann ist das Problem beseitigt.
Leider komme ich da aber nicht ran von meiner Kompontne aus. So bleibt mir nur
die WheelMessage selbst abzufangen und dann nicht inherited aufzurufen.
procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
begin
message.result:=1; // sonst gibt es Mehrfachauslöusng
// inherited; // darf nicht mehr aufgerufen werden.
end.
Leider kann so aber der Nutzer nicht mehr das OnMouseWheel Ereignis behandeln.
Testprojekt:
Siro
MouseWheel Ereignisse werden 3 fach aufgerufen ?
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
MouseWheel Ereignisse werden 3 fach aufgerufen ?
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Re: MouseWheel Ereignisse werden 3 fach aufgerufen ?
Mit Laz 1.6.4 kann ich das bestätigen. Aber in Laz 1.8 RC4 ist das behoben, der Zähler läuft schön in Einer-Schritten hoch.
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: MouseWheel Ereignisse werden 3 fach aufgerufen ?
Oh supi, ich danke Dir wp_xyz fürs probieren,
dann lad ich mir mal die neue Version runter.
...Minuten später:
Mit der neuen Version v1.8.0 RC4 läuft es jetzt einwandfrei.
So schnell geht das und ich hab gestern wie wild in meiner Software gesucht.....
Siro
dann lad ich mir mal die neue Version runter.
...Minuten später:
Mit der neuen Version v1.8.0 RC4 läuft es jetzt einwandfrei.
So schnell geht das und ich hab gestern wie wild in meiner Software gesucht.....
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...