2010-10-07 79 views
2

我想在表单被最大化或恢复后调用一个函数。 我知道我可以是这样的:德尔福 - 形式最大化事件

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

但问题是:形式实际上是调整之前触发此事件 - 之前,它是maxmized所以当窗体最大化,我得到了模板的高度(但我希望表单的宽度最大化后)。

如何做到这一点?谢谢!

回答

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; 
+2

如果您张贴链接到文章,请你包括关于文章的一些信息是找到链接,或许至少是文章的标题? – 2010-10-07 13:37:02

+0

@Marjan:我很着急,这就是只有链接的原因...下次我会更加明确:) – RBA 2010-10-08 07:10:22