我该如何做 IDE 方法或最终制作基本的停靠方法,而不需要非常缓慢地冻结可停靠窗体的移动?
当我在 Delphi 中搜索可停靠表单并发现Zibadian 在程序员天堂上的帖子:
首先:Delphi IDE 中的窗口不是 MDI 窗体,而是 SDI 窗体。
现在创建一个可停靠窗口。
Form2 将是可停靠的,而 Form1 将是其停靠的位置。在 Form1 上放置一个控件(例如 TPanel)来为 DockSite 提供服务。确保将该控件的 DockSite 和 UseDockManager 属性设置为 true。
对于 Form2,将 DragKind 设置为 dkDrop,将 DragMode 设置为 dmAutomatic,将 UseDockManager 设置为 true。
这是基本的码头功能。如果运行程序,显示 Form2 并将该窗体拖动到停靠站点上,它应该停靠在该站点上。您甚至可以通过抓住“标题”来取消停靠它,就像您在 IDE 中看到的那样。
对我来说,该方法移动可停靠表单的速度非常慢。然而,Zibadian 的回答继续描述了 IDE 是如何做到这一点的:
IDE 的停靠方法稍微复杂一些,因为您看不到停靠站点。我认为,您需要编写 Form1.OnDockOver 或 Form1.OnDockDrop 来执行该操作。该(那些)事件需要在适当的位置显示停靠站点。
看看使用 TDockTabSet 组件文章作者杰里米·诺斯。它已有几年历史,但应该会给您一些有用的指导。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)