Re: [Lazarus] TLabel inside a TScrollBox (under Win32) MouseWheel issue
To whom who may concern... I've created a sample package with an example to demonstrate how to solve this issue without altering the LCL, but providing a derived component instead: https://code.google.com/p/mousewheelcontrols/ Comments are welcome. Sandro Cumerlato On 15 July 2014 19:43, Sandro Cumerlato wrote: > Reference: "[Lazarus] Scrollbox and mousewheel" > http://lists.lazarus.freepascal.org/pipermail/lazarus/2012-July/074650.html > > > Hello everybody, > I'm writing to you about an issue discovered while using a TLabel > inside a TScrollBox (under Win32). > > The problem is that the TLabel hides the MouseWheel action of the > TScrollBox if the mouse is over the TLabel. > > To solve this problem I've exposed the Label1.OnMouseWheel property to > call the following ScrollBox1.OnMouseWheel event: > > procedure TFormMain.SrollBox1MouseWheel(Sender: TObject; Shift: TShiftState; > WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); > begin > with SrollBoxRight.VertScrollBar do > Position := Position - Sign(WheelDelta) * Increment; > Handled := true; > end; > > > The attached patch exposes the TLabel.OnMouseWheel event to solve the > TLabel/TScrollBox MouseWheel issue. > > For the same reason, IMHO, other GUI controls that can be inserted > into a TScrollBox should expose OnMouseWheel event. > > > Thank you for reading! > > Sandro Cumerlato -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] TLabel inside a TScrollBox (under Win32) MouseWheel issue
Reference: "[Lazarus] Scrollbox and mousewheel" http://lists.lazarus.freepascal.org/pipermail/lazarus/2012-July/074650.html Hello everybody, I'm writing to you about an issue discovered while using a TLabel inside a TScrollBox (under Win32). The problem is that the TLabel hides the MouseWheel action of the TScrollBox if the mouse is over the TLabel. To solve this problem I've exposed the Label1.OnMouseWheel property to call the following ScrollBox1.OnMouseWheel event: procedure TFormMain.SrollBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin with SrollBoxRight.VertScrollBar do Position := Position - Sign(WheelDelta) * Increment; Handled := true; end; The attached patch exposes the TLabel.OnMouseWheel event to solve the TLabel/TScrollBox MouseWheel issue. For the same reason, IMHO, other GUI controls that can be inserted into a TScrollBox should expose OnMouseWheel event. Thank you for reading! Sandro Cumerlato Index: /freepascal/laz/1.3/lcl/stdctrls.pp === --- /freepascal/laz/1.3/lcl/stdctrls.pp (revisione 45865) +++ /freepascal/laz/1.3/lcl/stdctrls.pp (copia locale) @@ -1502,6 +1502,7 @@ property OnMouseUp; property OnMouseEnter; property OnMouseLeave; +property OnMouseWheel; property OnChangeBounds; property OnContextPopup; property OnResize; -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus