Советы по Delphi

         

Как отследить окончание изменения размера или перемещения окна?


Своим опытом делится Олег Кулабухов:

Если вы попробуете отслеживать WM_SIZE или WM_MOVE, то получите множество таких сообщений во время перемещения окна. Нижеприведенный код демонстрирует пример перехвата WM_EXITSIZEMOVE, которая хоть и документирована только для применения в Windows NT, но работает и Windows 95. Учтите, что вы можете использовать WM_ENTERSIZEMOVE для отлавливания начала изменения размера/перемещения.

    type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure
WMEXITSIZEMOVE(var Message: TMessage);
message WM_EXITSIZEMOVE;
{ Public declarations }
end;



var
Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMEXITSIZEMOVE(var Message: TMessage);
begin
Form1.Caption := 'Finished Moving and sizing';
end;

[001909]



Содержание раздела