2010-10-07 78 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