如何在没有可停靠窗体的缓慢冻结运动的情况下制作像IDE这样的可停靠窗体?

时间:2009-08-13 22:27:52

标签: delphi drag-and-drop

如何在没有可停靠窗体的缓慢冻结运动的情况下执行IDE方法或最终制作基本停靠方法?

当我在Delphi中搜索可停靠的表单时找到了a post by Zibadian on Programmers Heaven

  

首先关闭:Delphi IDE中的窗口不是MDI格式,而是SDI格式。

     

现在创建一个可停靠的窗口。

     

Form2将是可停靠的,Form1将是停靠它的地方。在Form1上放置一个控件(如TPanel)来为DockSite提供服务。确保为该控件将DockSite和UseDockManager属性设置为true。

     

对于Form2,将DragKind设置为dkDrop,将DragMode设置为dmAutomatic,将UseDockManager设置为true。

     

这是基本的停靠功能。如果您运行程序,显示Form2并将该表单拖到停靠站点上,它应该停靠在该站点上。你甚至可以通过抓住IDE中看到的“标题”来解开它。

对我来说,这种方法非常缓慢地移动可停靠的形式。然而,Zibadian的回答继续描述IDE如何做到这一点:

  

IDE的dock-method有点复杂,因为你没有看到docksite。我想,你需要编写一个Form1.OnDockOver或Form1.OnDockDrop来执行它。那些(那些)事件需要在适当的位置显示码头。

2 个答案:

答案 0 :(得分:8)

Using the TDockTabSet component查看Jeremy North文章。它已经有几年了,但应该给你一些有用的指示。

答案 1 :(得分:4)