Cry about...
Delphi Programming
How to capture a form's OnMove event
Delphi does not expose an OnMove event handler for forms to notify you when a
form has been moved. But this event can
be captured in code and acted upon, allowing you to respond to the movement of a
form by the user.
To capture the OnMove event, add an event handler to respond to the WM_MOVE
message, so add the following to the definition of your form:
procedure OnMove(var Msg: TWMMove); message WM_MOVE;
In your OnMove event handler be sure to allow the base class (TForm) to
process the message by calling inherited, eg:
procedure TMyForm.OnMove(var Msg: TWMMove);
begin
inherited;
end
The WM_MOVE message is sent after the form has been moved, so to get the new
location of the form simply interrogate the form's Top and Left properties as
normal.
If you wish to capture the event to prevent the form from being moved off the
visible area of the screen then the message to capture is WM_MOVING.
These notes are believed to be correct for Delphi 6 and may apply to
other versions as well.
|