我希望在最大化或恢复表单后调用函数。 我知道我可以这样:
procedure TfrmMain.WMSysCommand;
begin
if (Msg.CmdType = SC_MAXIMIZE) OR (Msg.CmdType = SC_RESTORE) then
begin
Showmessage(IntToStr(frmMain.Height));
end;
DefaultHandler(Msg) ;
end;
但问题是:在实际调整表单大小之前触发了这个事件 - 所以当表单最大化时,我会在表单最大化之前得到表单的高度(但我希望表单的宽度在它之后)最大化)。
怎么做?谢谢!
答案 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;