[Lazarus] Shift returns empty set in MouseWheel events

Wolf wv99999 at gmail.com
Wed Jul 27 11:39:55 CEST 2016


For any of these MouseWheel handlers

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
   MousePos: TPoint; var Handled: Boolean);

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
   MousePos: TPoint; var Handled: Boolean);

the variable Shift: TShiftState returns an empty set.

Is that intentional, or is that a bug? If intentional, how can I 
restrict the MouseWheel event to
<WheelPressed>? Other mouse events, such as

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, 
Y: Integer);

return ssMiddle as a member of the TShiftState set when the MouseWheel 
is pressed  and
can be tested for using

if ssMiddle in Shift then . . .

How can I determine whether the MouseWheel was pressed or not?

My operating system: Kubuntu 16.04
Lazarus version: 1.6+dfsg-1 dated 2016-03-01
FPC Version: 3.0.0
SVN revision: Debian Package 1.6+dfsg-1
x86_64-linux-qt

Thank you

Wolf


More information about the Lazarus mailing list