【问题标题】:MDI Application : Home/Dashboard in Delphi berlin 10.1 applicationMDI 应用程序:Delphi berlin 10.1 应用程序中的主页/仪表板
【发布时间】:2022-06-14 23:59:36
【问题描述】:

我正在 Delphi 10.1 Berlin 开发 MDI 应用程序。有一个主窗体和子窗体。当我打开一个子窗体时,它会显示在主窗体的客户区,这就是 MDI 应用程序的工作方式。

我的任务是在主窗体中显示一个主页/仪表板窗体,其中包含一些快捷菜单、网格和一些应该始终在主窗体上打开的重要链接。此表单不应关闭。这个表单如何显示在主表单/父表单上?

或者,是否有其他更好的方法在 MDI 应用程序中显示仪表板?

已编辑。 -你好 在 MDI 应用程序中,我需要在主窗体/父窗体上显示网格和其他控件。(在客户区) 但是如果我这样做并尝试打开子窗口,那么它们不会在父窗体上显示/打开,因为客户区被网格和主窗体上的其他控件占用。

【问题讨论】:

  • 我建议你添加一个工具栏,alt。一个带有align = alTop 的面板到 MDI 主窗体,并将这些“仪表板”组件放在该工具栏/面板上。由于它与顶部对齐,因此 MDI 子窗体将显示在该工具栏/面板下方。如果您已经准备好“仪表板”表单,您可以尝试将其父表单设置为 MDI 主表单并再次将其对齐alTop。没试过这样的设置(带表格),不知道有没有潜在的问题。
  • 感谢您的回复。但是我的仪表板也是子表单,它在父表单的客户区域打开它也可以,如果当我单击主页按钮仪表板表单会再次看到它时显示在它上面的任何其他表单,但它不应更改仪表板的大小和宽度
  • @Ankush 如果您不想关闭子表单,请不要关闭它。真正的问题是什么?查看 Form 的 OnCloseQuery 事件和 Contraints 属性。
  • 抱歉,我现在不清楚您在问什么。正如您最初所说的那样(从您的原始帖子中复制),您还表达了相互矛盾的信息:但这是我展示主页/仪表板表单的任务,其中包含一些快捷菜单、网格和一些始终在主表单上打开的 Imp 链接。 注意,你说的是总是在主窗体上打开,而不是在子窗体上!请编辑您的问题并添加复制错误的最简单代码,并尝试改进问题描述。
  • 我确实更新了描述

标签: delphi dashboard mdi


【解决方案1】:

声称这个解决方案是一个“”的解决方案,当你想做你想做的事情时,你绝对应该使用 MDI 以外的东西.

但这里有一个继续它: 您可以将主表单创建为“普通”表单,并将每个子表单创建为普通表单。然后在子窗体 oncreate 中将窗口父级设置为主窗体。 这不是 MDI这也不是好的做法

但它允许您将子窗口悬停在放置在主窗体上的控件上。当您单击子表单时,您将在表单 onclick 中添加一些代码以将表单置于最前面。

我添加了一个列表视图(只是一个普通的列表视图)来显示表单可以悬停在列表视图上。 但就像其他人已经提到的那样,自 Win2K 以来,MDI 已被弃用,这是有充分理由的。所以我肯定会选择选项卡式布局或使用一些好的对接库,如 LMD 对接包,它可以创建 MDI “like”界面。

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 2016-12-14
    • 2010-12-29
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    相关资源
    最近更新 更多