【问题标题】:How to Hide my Forms when they are minimized?最小化时如何隐藏我的表单?
【发布时间】:2013-12-13 19:18:16
【问题描述】:

除了我的主窗体之外,我还需要我的窗体来通知我的主窗体并在我最小化它们时隐藏它们(而不是最小化到桌面窗口)。

如何做到这一点?

我的表单是这样创建的:How to make my Forms always to be on top my main form?

【问题讨论】:

    标签: delphi delphi-7


    【解决方案1】:

    处理WM_SYSCOMMAND 消息以检测最小化:

    type
      TMyForm = class(TForm)
      ....
      protected 
        procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
      ....
      end;
    ....
    procedure TMyForm.WMSysCommand(var Message: TWMSysCommand);
    begin
      if Message.CmdType and $FFF0 = SC_MINIMIZE then
        Hide
      else
        inherited;
    end;
    

    此时您也可以通过您选择的任何机制通知主表单。

    【讨论】:

    • 为什么不在任何情况下都调用继承(就像您在最初的答案中所做的那样)?
    • 因为这会在隐藏表单窗口之前将其最小化。还不如把它藏起来。
    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 2016-06-07
    • 2021-05-24
    • 2012-07-27
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多