[Lazarus] how to handle Shift=[ssCtrl]

FreeMan freeman35 at delphiturkiye.com
Thu Apr 2 21:19:41 CEST 2015


constant name are wrong  I think,
   ssMeta -> ctrl key
   ssCtrl -> cmd (command) key
fpc r30400 lazarus r48594 on yosemite qt x64

      if Shift * [ssShift, ssAlt, ssCtrl, ssMeta] = [ssCtrl]then 
ShowMessage('ssCtrl(command key) pressed');
      if Shift * [ssShift, ssAlt, ssCtrl, ssMeta] = [ssMeta]then 
ShowMessage('ssMeta(ctrl key) pressed');
      if Shift * [ssShift, ssAlt, ssCtrl, ssMeta] = [ssMeta,ssShift]then 
ShowMessage('ssShift + ssMeta(ctrl key) pressed');
      if Shift * [ssShift, ssAlt, ssCtrl, ssMeta] = [ssCtrl,ssAlt]then 
ShowMessage('ssAlt + ssCtrl(command key) pressed');



On 2.04.2015 18:34, Graeme Geldenhuys wrote:
> On 2015-04-02 15:33, FreeMan wrote:
>> Yes your code is working and hold ssShift, just change ssShift to
>> ssCtrl, and not work, I mean not show any message.
> I tested here by changing ssShift to ssCtrl and it works perfectly.
>
>    if (Shift*[ssShift,ssAlt,ssCtrl]) = [ssCtrl] then
>      ShowMessage('really, only Ctrl was pressed');
>    if Shift * [ssShift,ssAlt,ssCtrl] = [ssShift,ssCtrl] then
>      ShowMessage('Only Shift+Ctrl was pressed');
>    if ssCtrl in Shift then
>      ShowMessage('Ctrl could have been pressed with ssAlt or ssShift for
> example');
>
>
>> What is your test system ?
> 64-bit FreeBSD with LCL-GTK2
>
>
>
>> I wrote in first message, yosemite qt x64.
> If it doesn't work on your system, then it must be another bug in LCL.
> You should then file a bug report on Mantis. I suggest you also supply
> the test code above.
>
>
>
> Regards,
>    - Graeme -
>





More information about the Lazarus mailing list