【问题标题】:It is possible to create more than one MDI form in a delphi application?可以在一个delphi 应用程序中创建多个MDI 表单吗?
【发布时间】:2011-03-21 16:01:02
【问题描述】:

我开发了一个 mdi 应用程序,它的主窗体有几个在运行时创建的子窗口。子窗口是自定义窗体。我想在同一个应用程序中以另一种形式显示这些自定义表单。这可能吗?

【问题讨论】:

    标签: delphi forms mdichild


    【解决方案1】:

    不,使用标准 VCL 是不可能的。只有应用程序的 MainForm 可以是 MDI Form。但是应该可以直接使用win32,如图here

    【讨论】:

    • 另请参阅我关于同一主题的 QC 报告(尽管它被关闭为“不会做”):qc.embarcadero.com/wc/qcmain.aspx?d=12006
    • 抱歉重播晚了(因为我参与了另一个项目)。它没有用。对不起。当我创建第二个 mdi 窗体时,它的子窗口被绘制在主窗体中。
    【解决方案2】:

    我不相信这在 VCL 中是可能的。据我了解,MDI 表单被假定为主要表单(Application.MainForm)。我想底层的 Windows 例程不会有任何这样的假设,但我认为 VCL 不会让你在没有一些严重的黑客攻击的情况下这样做。

    在 VCL 框架的不同点,重要的 MDI 消息被发送到Application.MainForm.ClientHandle。现在,ClientHandle 是 MDI 容器,但由于某种原因,主窗体的容器已被单选出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-06
      • 2021-12-23
      • 2020-07-06
      • 2015-03-12
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多