delphi 如何使可停靠窗体像IDE一样,而不会使可停靠窗体的移动非常缓慢?

j91ykkif  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(106)

我如何做IDE方法或最终使基本的停靠方法没有非常缓慢的冻结移动的可停靠形式?
当我在 Delphi 中搜索可停靠表单时,发现了a post by Zibadian on Programmers Heaven
首先: Delphi IDE中的窗口不是MDI窗体,根据SDI窗体。
现在创建一个可停靠窗口。
Form2将是可停靠的,Form1将是它停靠的地方。在Form1上放置一个控件(如TPanel)以提供DockSite。确保将该控件的DockSite和DockManager属性设置为true。
对于Form2,将DragKind设置为dkDrop,将DragMode设置为dmAutomatic,将DragDockManager设置为true。
这是基本的停靠功能。如果您运行程序,显示Form2并将该表单拖到docksite上,它应该停靠在该站点。您甚至可以通过抓取“标题”来取消停靠,就像您在IDE中看到的那样。
对我来说,该方法移动可停靠窗体的速度非常慢。然而,Zibadian的回答继续描述IDE是如何做到这一点的:
IDE的dock方法稍微复杂一点,因为你看不到docksite。我认为,你需要编写一个Form1.OnDockOver或Form1.OnDockDrop来执行它。那些事件需要在适当的位置显示docksite。

相关问题