Delphi、MDI 与多文档界面的选​​项卡

标签 delphi interface tabs mdi

我正在开发一个多文档应用程序。目前它使用 MDI,这对我(作为开发人员)以及我相信的用户来说都非常方便。然而,有一个“反对” - 我还没有找到一种解决方案来快速加载许多子窗口(每次创建窗口并最大化以填充父窗口区域时,到目前为止,有一个调整大小的“动画”,需要花费很多时间),因此我正在考虑切换回选项卡式界面(这需要更多的工作,我需要将表单“嵌入”到页面表中,因为有有许多“种类”的表单可用,一些用于编辑文本文档,一些用于其他对象)...

那么,你有什么看法呢?我应该使用 MDI 还是选项卡式界面?

最佳答案

为了避免新的 MDI 子窗口的调整大小动画(从而延迟),请在创建子窗口之前向父 TForm 的 ClientHandle 属性发送 WM_SETREDRAW 消息,然后在完成后再次发送该消息,即:

Self.Perform(WM_SETREDRAW, False, 0);
... create child windows as needed ...
Self.Perform(WM_SETREDRAW, True, 0);
Windows.InvalidateRect(Self.ClientHandle, nil, True);
Windows.UpdateWindow(Self.ClientHandle);

关于Delphi、MDI 与多文档界面的选​​项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463221/

相关文章:

标签内容中的 HTML 图像标签未呈现

delphi - 列聚合的 TDBGrid 状态栏

delphi - 接口(interface)对象从内存中转储

Java-未找到通用类型?

javascript - 如何使用 facebook javascript sdk 在页面粉丝选项卡内获取 facebook 页面 ID

tabs - 将 Twitter Bootstrap 选项卡转换为选择菜单

delphi - 将 ODBC 数据源与 Delphi 2006+ 连接的正确方法?

Delphi:如何查找并修复 EOutOfMemory 错误?

java - "cast"ObservableList<Foo> 到 List<IFoo> 的干净解决方案?

interface - 静态上下文错误中使用的非静态方法