MouseWheel Ereignisse werden 3 fach aufgerufen ?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.

MouseWheel Ereignisse werden 3 fach aufgerufen ?

Beitragvon siro » 26. Sep 2017, 08:56 MouseWheel Ereignisse werden 3 fach aufgerufen ?

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:
TestWheel.zip
(127.25 KiB) 12-mal heruntergeladen


Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 357
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 und Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 26. Sep 2017, 10:55 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.
wp_xyz
 
Beiträge: 3005
Registriert: 8. Apr 2011, 08:01

Beitragvon siro » 26. Sep 2017, 11:37 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..... 8)

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 357
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 und Windows 10 | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Lazarus - Bugs



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron
porpoises-institution
accuracy-worried