title: How to determine if the mouse cursor is inside a control
body: <p>I'm adding support for mouse wheel movement to a TScrollBox (using the FormMouseWheel procedure) and I need to determine if the mouse is inside the component.</p>
  
  <p>Basically I need to determine if the mouse is inside the TScrollBox so that I then handle the scrolling code accordingly.</p>
  
  <p>Any idea on how to do this?</p>
  
  <p>EDIT: Here's the code (including the answer to this question) as it might help others:</p>
  
  <pre><code>   procedure TForm1.FormMouseWheel(Sender: TObject;
    Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
    var Handled: Boolean);
  var
    Msg: Cardinal;
    Code: Cardinal;
    I, ScrollLines: Integer;
  
    ScrollBoxCursosPos: TPoint;
  begin
    //position of the mouse cursor related to TScrollBox
    ScrollBoxCursosPos := ScrollBox1.ScreenToClient(Mouse.CursorPos);
  
    if (PtInRect(ScrollBox1.ClientRect, ScrollBoxCursosPos)) then
    begin
      Handled := True;
      If ssShift In Shift Then
        msg := WM_HSCROLL
      Else
        msg := WM_VSCROLL;
  
      If WheelDelta &lt; 0 Then
        code := SB_LINEDOWN
      Else
        code := SB_LINEUP;
  
      ScrollLines:= Mouse.WheelScrollLines * 3;
      for I:= 1 to ScrollLines do
        ScrollBox1.Perform(Msg, Code, 0);
      ScrollBox1.Perform(Msg, SB_ENDSCROLL, 0);
    end;
  end;
  </code></pre>