[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.

Yes.

>>> 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...)

-Flávio




More information about the Lazarus mailing list