[Lazarus] TShiftState "lock" states in mousewheel events

Flávio Etrusco flavio.etrusco at gmail.com
Mon Oct 3 17:55:43 CEST 2011

On Mon, Oct 3, 2011 at 11:48 AM, Alexander Klenin <klenin at gmail.com> wrote:
> 2011/10/4 Flávio Etrusco <flavio.etrusco at gmail.com>:
>>> However under Win32 KeyDown/Up and MoudeUp/Down/Move events do not
>>> recieve these elements, while MouseWheel events do.
>> See http://bugs.freepascal.org/view.php?id=20065.
>> Also there are duplicate functions in Forms and Controls units (apart
>> form the function which handles the WMWheel in win32), which should be
>> de-duplicated.
>> IMO the function should be/stay implemente in Controls and enhanced
>> (i.e. move the win32 function to Controls).
> Do I understand correctly that after this patch ssNum/ssCaps/ssScroll will
> not be included in the Shift argument of DoMouseWheel?
> If so, +1 from me.


>>> Delphi does not have these elements, and, since they are usually not working anyway,

This is easily fixable ;-) But until now I didn't realize this breaks
code written for Delphi that checked for empty set or superset. I take
back my argument for handling them in other messages then. The LCL
implements GetKeyState anyway (although I'd prefer it was "pascalized"
to avoid bitmasks...)


More information about the Lazarus mailing list