德尔福 - 形成最大化的事件

时间:2010-10-07 10:25:14

标签: 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;

但问题是:在实际调整表单大小之前触发了这个事件 - 所以当表单最大化时,我会在表单最大化之前得到表单的高度(但我希望表单的宽度在它之后)最大化)。

怎么做?谢谢!

1 个答案:

答案 0 :(得分:3)

以下链接可能会对您有所帮助:

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

将此声明声明为本单元的接口部分

Procedure sizeMove (var msg: TWMSize); message WM_SIZE; 

并执行此程序:

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