【问题标题】:Delphi - form maximized eventDelphi - 窗体最大化事件
【发布时间】:2010-10-07 10:25:13
【问题描述】:

我想在表单最大化或恢复后调用一个函数。 我知道我可以这样做:

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

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

如何做到这一点?谢谢!

【问题讨论】:

    标签: delphi


    【解决方案1】:

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

    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;
    

    【讨论】:

    • 如果您发布文章链接,请在链接后面附上文章的一些信息,或许至少是文章的标题?
    • @Marjan :我很着急,这就是只放链接的原因...下次我会更明确:)
    【解决方案2】:

    您也可以使用 OnResize 并检查 WindowState。这是更简单的方法。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多