Карта сайтаСсылкиКонтакты

Как перехватить перемещение и изменение размеров формы

PDF Печать
Статьи

Если Вы хотите определить начало перемещения или изменения размеров формы, а также, когда пользователь заканчивает перемещение или изменение размеров формы, нужно обработать специальные сообщения Windows.

Определяем передвижение формы и изменение ее размеров

Сообщение WM_ENTERSIZEMOVE отправляется окну, когда начинается режим перемещения формы или изменения ее размеров.

Сообщение WM_EXITSIZEMOVE отправляется окну после выхода формы из режима перемещения или изменения размеров.

Когда форма перемещается, сообщение WM_MOVE посылается окну.

Ниже приведен пример слежения за перемещением формы и изменением ее размеров.


private
    { Private declarations }
    procedure WMEnterSizeMove(var Msg: TMessage); message WM_ENTERSIZEMOVE;
    procedure WMMove(var Msg: TMessage); message WM_MOVE;
    procedure WMExitSizeMove(var Msg: TMessage); message WM_EXITSIZEMOVE;

{ ... }

procedure TForm1.WMEnterSizeMove(var Msg: TMessage);
begin
  lblMove.Caption:= 'Начало перемещения или изменения размера';
end;

procedure TForm1.WMExitSizeMove(var Msg: TMessage);
begin
  lblMove.Caption:= 'Конец перемещения или изменения размера';
end;

procedure TForm1.WMMove(var Msg: TMessage);
begin
  lblIndicate.Caption:= Format(
              'Клиентская область - x : %d, y : %d',
              [TWMMove(Msg).XPos, TWMMove(Msg).YPos]);
end;

 

Добавить комментарий


Защитный код
Обновить