如何实现这种类型的Docking?

时间:2011-06-16 12:20:21

标签: delphi dock docking

看看这个名为Construct的开源应用程序

它使用Panel Docking,您可以在其中拖动Panel,然后使用屏幕上的一些视觉辅助工具来显示Panel可以停靠的位置,如下所示:

在拖动/停靠之前

enter image description here

在拖动/停靠阶段

当拖动/移动其中一个Dock面板时,Window现在看起来像这样:

enter image description here

如您所见,拖动/移动对象面板时,它会显示面板可以停靠的位置的视觉帮助。当它不在对接位置时,它也像自由窗口一样移动。在此示例中拖动/移动其他Dock面板(例如“项目面板”)时也是如此。

这是一个使用它的应用程序的示例,我也看到其他应用程序也使用它。

是否有德尔福实现这种行为的方式?

我有一些占用一些空间的面板,自由移动或对接它们是实现的有用功能。

感谢。

更新

LMD组件似乎提供了这样一个组件,我可以研究一下。

5 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

为什么在Delphi中不应该有这种方法呢?

我不知道周围是否有免费组件,但DevExpress为它提供了library,而其他的vedors肯定也有这样的库。

如果你有兴趣自己编写这样的东西,你可以看看 Dockpanel Suite 它是用C#编写的,但它背后的WinAPI基础是相同的。

增加:
does anyone know of good delphi docking components?

答案 2 :(得分:4)

即将发布DevExpress对接组件的新版本。它包括您在图像中显示的Visual Studio样式对接。

有关详细信息,请参阅此链接:http://community.devexpress.com/blogs/ctodx/archive/2011/04/26/sneak-peek-visual-studio-dock-style-for-vcl-docking-library-coming-in-v2011-1.aspx

答案 3 :(得分:3)

Delphi支持开箱即用。在Samples(演示)文件夹中有一个有限的演示(意味着它们没有演示所有功能),具体取决于您使用的Delphi版本。例如,在Delph7中,它位于$(DELPHI)\Demos\Docking,在D2007及更高版本中,您将在C:\Documents and Settings\All Users\Documents\RAD Studio\x.0\Demos\DelphiWin32\VCLWin32中找到它,其中x.0指的是Delphi版本。如果您安装在Vista或Win7上,D2009和XE的位置会有所不同,但我相信您可以追踪它们;如果不能,请使用“开始”菜单Embarcadero RAD Studio <version>,然后选择Samples

在Delphi的更高版本中还包含TDockTabSet组件,您可以在Embarcadero Developer Network上找到article and code来解释和演示它的用法。 (相信,TDockTabSet几乎就是IDE中用于对接的东西。)

答案 4 :(得分:1)

我在Delphi中的可停靠表单上做了一些介绍视频,有herehere。他们也在YouTube上 - Part 1Part 2。然而,它们非常具有介绍性。