четверг, 18 июня 2020 г.

Как словить событие формы OnMove в Delphi

Я не нашел такого события OnMove для формы в Delphi XE8. Как дела обстоят в более старших версиях не знаю. Но вот как это решается для моего случая - просто добавляем обработчик сообщения WM_MOVE в форму:
procedure OnMove(var Msg: TWMMove); message WM_MOVE;

....

procedure TMyForm.OnMove(var Msg: TWMMove);
begin
  DoSomething;
end;
Сообщение WM_MOVE приходить когда пользователь схватил форму, перетащил и отпустил. Если вам нужно ловить событие во время самого движение добавьте обработчик WM_MOVING.