捕获表单的最小化事件(Delphi)
我找到了两种捕捉最小事件的方法 第一:在FormResize事件上:捕获表单的最小化事件(Delphi),delphi,events,minimized,Delphi,Events,Minimized,我找到了两种捕捉最小事件的方法 第一:在FormResize事件上: if MyForm.WindowState = wsMinimized then ...... 第二:声明消息处理程序,如下所示: procedure WMSize(var Msg: TMessage); message WM_SIZE; 然后: procedure TForm57.WMSize(var Msg: TMessage); begin if Msg.WParam = SIZE_MINIMIZED then
if MyForm.WindowState = wsMinimized then ......
第二:声明消息处理程序,如下所示:
procedure WMSize(var Msg: TMessage); message WM_SIZE;
然后:
procedure TForm57.WMSize(var Msg: TMessage);
begin
if Msg.WParam = SIZE_MINIMIZED then ....
end;
哪条路更好
OnResize
被触发以响应相同的消息(WM_SIZE
)。除非您需要在VCL处理消息之前做出反应(更新滚动条、对齐控件等),否则不需要附加消息处理程序。否则,请确保在继承的调用(示例中缺少)之前处理它。秒更好。因为Windows状态不一定是最小化的。对您来说可读性更好的一个。哪一个是最优化的?在您确定这样做的原因之前,不要担心优化(通过分析来跟踪实际的性能问题)。在此之前,请选择可读性更强且易于维护的选项。无论窗口状态如何,每个WM_SIZE消息都会引发OnResize事件。