Responding to a Mouse Move
Go Up to Responding to the Mouse
An OnMouseMove event occurs periodically when the user moves the mouse. The event goes to the object that was under the mouse pointer when the user pressed the button. This allows you to give the user some intermediate feedback by drawing temporary lines while the mouse moves.
To respond to mouse movements, define an event handler for the OnMouseMove event. This example uses mouse-move events to draw intermediate shapes on a form while the user holds down the mouse button, thus providing some feedback to the user. The OnMouseMove event handler draws a line on a form to the location of the OnMouseMove event:
procedure TForm1.FormMouseMove(Sender: TObject;Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Canvas.LineTo(X, Y);{ draw line to current position }
end;
void __fastcall TForm1::FormMouseMove(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y) {
Canvas->LineTo(X, Y); // draw line to current position
}
With this code, moving the mouse over the form causes drawing to follow the mouse, even before the mouse button is pressed.
Mouse-move events occur even when you haven't pressed the mouse button.
If you want to track whether there is a mouse button pressed, you need to add an object field to the form object.