Delphi-表单最大化事件

fli*_*iy1 2 delphi

我想在表单最大化或还原后调用函数。我知道我可以这样:

procedure TfrmMain.WMSysCommand;
begin
   if (Msg.CmdType = SC_MAXIMIZE) OR (Msg.CmdType = SC_RESTORE) then
   begin
     Showmessage(IntToStr(frmMain.Height));
   end;
   DefaultHandler(Msg) ;
end;
Run Code Online (Sandbox Code Playgroud)

但是问题是:在实际调整表单大小之前会触发此事件-因此,当表单最大化时,在表单最大化之前,我会得到表单的高度(但是在表单最大化之后,我想要表单的宽度)。

这该怎么做?谢谢!

RBA*_*RBA 5

以下链接可能会为您提供帮助:

http://www.tek-tips.com/viewthread.cfm?qid=809465&page=176

将此声明到该单元的接口部分

Procedure sizeMove (var msg: TWMSize); message WM_SIZE; 
Run Code Online (Sandbox Code Playgroud)

和执行此程序:

Procedure TfrmMain.sizeMove (var msg: TWMSize);
begin 
 inherited; 
 if (msg.SizeType = SIZE_MAXIMIZED) OR (msg.SizeType = SIZE_RESTORED)then   
  resizeQlikViewReports(); 
end;
Run Code Online (Sandbox Code Playgroud)

  • 如果您发布文章链接,请在链接后面包含有关文章的一些信息,也许至少是文章标题? (2认同)