Tech-Ecke / Delphi Inhalt / Mausrad (Scrollrad) abfragen

 

     Mausrad (Scrollrad) abfragen

 

   Grundlegendes

Einige Komponenten, z.B. die welche eine Scrollbar haben oder auch die TrackBar reagieren von Haus aus auf das Mausrad, sofern diese den Focus haben. Möchte man das Mausrad für andere Zwecke nutzen, so kann man dies über das Form Ereignis OnMouseWheel abfragen. Im Beispielcode weiter unten wird eine TTrackBar über dieses Ereignis verstellt, die TrackBar lässt sich somit dann auch verstellen, selbst wenn sie nicht den Focus hat.

Wenn man sich bei OnMouseWheel den Integerwert von "WheelDelta" auslesen lässt, so bekommt man je nach Drehrichtung den Wert 120 oder -120. Bei einer Maus mit zwei Rädern wird das zweite Rad den Wert 240 oder -240 liefern. Dabei Wird der Wert jeweils nur einmal pro "Rad-Raste" ausgegeben.

 

 

   Beispiel

TrackBar mit Maus verschieben, auch wenn diese nicht den Focus hat. Code steht hinter dem Form Ereignis OnMouseWheel

  procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
   if TrackBar1.Focused = true then exit; // wenn im Focus, dann nichts tun, da dann sowieso auf das Mausrad reagiert wird
   if WheelDelta = 120 then TrackBar1.Position := TrackBar1.Position -1;
   if WheelDelta = -120 then TrackBar1.Position := TrackBar1.Position +1;
end;
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 23.03.2009]