[Lazarus] Forms.pp function error?
As pointed by Dmitry B, and checked by myself in LCL, MK_ALT must be defined in LCLType.pp as $2000. For ex, this is sample from qtwidgets.pas: if (ModifierState and MK_SHIFT) <> 0 then Msg.State := [ssShift]; if (ModifierState and MK_CONTROL) <> 0 then Msg.State := [ssCtrl] + Msg.State; if (ModifierState and $2000) <> 0 then Msg.State := [ssAlt] + Msg.State; patch added. -- Regards, Alexey Index: lcl/lcltype.pp === --- lcl/lcltype.pp (revision 59355) +++ lcl/lcltype.pp (working copy) @@ -2836,6 +2836,7 @@ MK_DOUBLECLICK = $80; MK_TRIPLECLICK = $100; MK_QUADCLICK = $200; + MK_ALT = $2000; // used (as number) by several widgetsets //== // Constants from commctrl -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Forms.pp function error?
Value $400 makes sense. And also this must be changed then: function KeysToShiftState(Keys: PtrUInt): TShiftState; it uses same constants. Alex -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Forms.pp function error?
On Tue, 16 Oct 2018, AlexeyT via Lazarus wrote: On 16.10.2018 09:56, Michael Van Canneyt via Lazarus wrote: There does not need to be if there is no corresponding MK_nnn value ? What would be the MK_nnn value for ssAlt ? We can add in, LCLType.pp: const // Mouse message key states MK_LBUTTON = 1; MK_RBUTTON = 2; MK_SHIFT = 4; MK_CONTROL = 8; MK_MBUTTON = $10; MK_XBUTTON1 = $20; MK_XBUTTON2 = $40; // following are "virtual" key states MK_DOUBLECLICK = $80; MK_TRIPLECLICK = $100; MK_QUADCLICK = $200; I understand that, but what additional value makes sense ? Michael.-- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Forms.pp function error?
On 16.10.2018 09:56, Michael Van Canneyt via Lazarus wrote: There does not need to be if there is no corresponding MK_nnn value ? What would be the MK_nnn value for ssAlt ? We can add in, LCLType.pp: const // Mouse message key states MK_LBUTTON = 1; MK_RBUTTON = 2; MK_SHIFT = 4; MK_CONTROL = 8; MK_MBUTTON = $10; MK_XBUTTON1 = $20; MK_XBUTTON2 = $40; // following are "virtual" key states MK_DOUBLECLICK = $80; MK_TRIPLECLICK = $100; MK_QUADCLICK = $200; -- Regards, Alexey -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Forms.pp function error?
function ShiftStateToKeys(ShiftState: TShiftState): PtrUInt; begin Result := 0; if ssShift in ShiftState then Result := Result or MK_SHIFT; if ssCtrl in ShiftState then Result := Result or MK_CONTROL; if ssLeft in ShiftState then Result := Result or MK_LBUTTON; if ssRight in ShiftState then Result := Result or MK_RBUTTON; if ssMiddle in ShiftState then Result := Result or MK_MBUTTON; if ssExtra1 in ShiftState then Result := Result or MK_XBUTTON1; if ssExtra2 in ShiftState then Result := Result or MK_XBUTTON2; if ssDouble in ShiftState then Result := Result or MK_DOUBLECLICK; if ssTriple in ShiftState then Result := Result or MK_TRIPLECLICK; if ssQuad in ShiftState then Result := Result or MK_QUADCLICK; end; I don't see here "if ssAlt in " line -- Regards, Alexey -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus