I found 2 ways for catching onMinimize event.

First: On FormResize event:

if MyForm.WindowState = wsMinimized then ......

Second: Declaring the message handler like this:

procedure WMSize(var Msg: TMessage); message WM_SIZE;

And then:

procedure TForm57.WMSize(var Msg: TMessage);
begin
  if Msg.WParam  = SIZE_MINIMIZED then ....
end;

Which way is better?!

有帮助吗?

解决方案

OnResize is fired in response to the same message (WM_SIZE). Unless you need to react before the VCL handles the message (update scrollbars, align controls etc.), you don't need to attach a message handler. Otherwise, be sure to handle it before the inherited call (which is missing in your sample).

其他提示

second is better. as WindowState is not necessarily wsMinimized.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top