Mousewheeldown wird 3 x duchlaufen.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Mousewheeldown wird 3 x duchlaufen.

Beitrag von haderlump »

Hallo zusammen Ich habe wieder mal einen rätselhaften Effekt.
Ich möchte per Mousewhel den inhalt eines Editfeldes (lcvParameter)verändern. Dazu habe ich folgendes programmiert:

Code: Alles auswählen

procedure TCV_Form.lcvParameterMouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
var
  wert:0..255;
begin
   wert := strToInt(lcvParameter.text);
   if wert > 0 then
      wert -= 1;
   lcvParameter.Text:= IntToStr(wert);
end;
 
procedure TCV_Form.lcvParameterMouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
var
  wert:0..255;
begin
   wert := strToInt(lcvParameter.text);
   if wert < 255 then
      wert += 1;
   lcvParameter.Text:= IntToStr(wert);
end;           

Komischerweise wird jede der beiden Proceduren 3x ausgeführt, was natürlich dazu führt, dass sich der Wert in 3er Schritten verändert. Ich habe keine Erklärung dafür,
Ich habe es auch schon mit der Procedure onMousewheel probiert, der gleiche Effekt.
Habt Ihr eine Ahnung?
Ich habe auch Lazarus neu gestartet, hat auch nichts gebracht..

Gruß Fritz

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mousewheeldown wird 3 x duchlaufen.

Beitrag von Mathias »

Komischerweise wird jede der beiden Proceduren 3x ausgeführt, was natürlich dazu führt, dass sich der Wert in 3er Schritten verändert. Ich habe keine Erklärung dafür,
Ich habe es auch schon mit der Procedure onMousewheel probiert, der gleiche Effekt.
Habt Ihr eine Ahnung?
Ich habe es bei mir probiert, es wird genau einmal aufgerufen.
Dies könnte am OS und Maus-Treiber liegen.
Hast du evtl. in der Systemsteuerung vom OS etwa an deiner Maus verstellt ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: Mousewheeldown wird 3 x duchlaufen.

Beitrag von Achtzig »

Müßte da nicht zum Abschluß noch Handled auf True gesetzt werden?

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Mousewheeldown wird 3 x duchlaufen.

Beitrag von siro »

Ich hatte das gleiche Problem:

Das MouseWheel Problem lag direkt bei Lazarus
Das Problem wurde in v1.8.0 RC4 behoben....

Sobald eine Komponten den Fokus hat, wurden MouseWheel Ereignisse dreifach aufgerufen.

https://www.lazarusforum.de/viewtopic.php?f=19&t=11073
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Antworten