繁体   English   中英

针对Delphi / C ++ Builder的停靠库的建议?

[英]Recommendations for a docking library for Delphi / C++Builder?

我的团队目前正在考虑将现有的基于MDI的应用程序转移到更现代的基于对接的方法。 我们仍在思考,但我们想把它转移到VS2010的对接和视觉外观上:

VS2010 UI和对接截图

这具有以下功能:

  • 显示窗口将停靠的混合轮廓
  • 划入标签,并排并排
  • 允许通过拖动和释放显示停靠位置的图像进行对接(我将其称为“停靠小部件”)
  • 看起来也不错(主题/ UI方式)

我无法找到与RAD Studio 2010一起使用的高质量对接库,并且正在寻找关于我没有找到的库或者如何使用我发现的库来实现这样的建议的建议。

  • 更新:我最终购买了AutomatedQA的对接库 我认为这是最好的。 有关它的部分,请参阅以下详细信息。

  • 更新2,2011年7月:这个问题考察了Delphi / C ++ Builder可用的每个对接库,所以我试图让它保持最新。 我知道的两个变化:
    • SmartBear现在拥有AutomatedQA,拥有终结的AutomatedQA对接库 这是我建议买的一个。 他们正在考虑开源。
    • 我与DevExpress对接的一个问题(这使它不值得购买)是它缺乏对VS2008 / 10式对接的支持,具有对接小部件,拖动时的透明覆盖等等。 他们现在正在实现它 因此,由于AQDocking不再被出售,如果我现在问这个问题,我接受的答案就是购买DevExpress Docking

我找到了以下库。 这是一个概述:

内置VCL对接

这允许表单停靠在其他表单或TWinControls上,但看起来非常基本。 使用XOR绘制的轮廓进行拖动,这在Vista和Win7上非常糟糕。 有一个用于标签式停靠表单的TTabDockSet控件,但我无法弄清楚如何控制停靠表单的标题在停靠后呈现的方式。 我认为并行实施对接必须手动完成,即时创建新的docksite面板。 RAD Studio IDE的对接窗口比这个(例如,拖动表单时的透明矩形)有点光滑,这是奇怪的,因为我认为它使用了VCL对接支持。

JVCL对接

这看起来更像是内置VCL对接的一个不错的解决方案。 它支持在任何边缘或客户端上对接,并显示表单将停靠的alphablended矩形。

JVCL对接测试程序

它似乎是非常错误的(允许在第一个表单之上删除第二个表单,但冻结程序)并且没有内置的选项卡式底座支持或任何类型的drop-location小部件。

LMD对接包

这看起来很有希望:虽然它似乎没有直接停靠表格,但它有对接面板和控件/框架。 现有表单可以迁移到框架。 它还有一个对接小部件和标签式底座支持。

但是,该演示似乎非常不可靠。 我已经安装了最新的评估版本,并创建了一个带有停靠站点和多个面板的新项目,并按下Run会导致以下情况:

LMD对接

这在表单组件流中崩溃。 目视检查DFM文件没有显示任何错误,但是有一个不透明的二进制blob用于可能导致它的布局信息。 在评估版本中,这并不是特别令人鼓舞。

DevExpress ExpressDocking

我对此寄予厚望:我以前从未使用任何DevExpress控件,但他们有良好的声誉。 但他们的演示程序确实令人失望:

DevExpress对接

控件很闪亮,即使使用XP风格也不太适合Windows。 它确实有标签对接,但它使用XOR-ed轮廓 - 这在XP或Vista上不能很好地工作。 它也没有任何类型的对接小部件。 坦率地说,看起来它自Windows XP时代以来一直没有更新。 2011年7月更新: 这项工作正在改进中

AutomatedQA / SmartBear对接库

到目前为止,这是所有图书馆中最有前途的。

AutomatedQA对接库

我经常使用AQTime ,这是一个出色的分析器,似乎是使用自己的对接库编写的,而且效果很好。 但是,最新版本的停靠库试用版下载适用于RAD Studio 2009,并且安装到2010年的建议是它不受支持,您应该重新编译源代码。 该演示没有源代码,我们没有RS2009,安装程序拒绝安装,除非我们这样做,即使我们管理它安装我们也无法使用它,因为我们需要重新编译不存在的来源。

我一直与他们的支持团队保持联系,他们向我指出了这个主题 我还发现了另一个与客户提出相同问题的主题 我回复并希望听到更好的消息。 我并不热衷于建议购买我无法评估的产品,特别是当我们的IDE不支持它时。

  • 更新:我最终购买了这个库。 尽管有评估问题(它在D2007中工作,我有一个副本),但似乎最容易使用所有库,也是最强大的 - 例如,为它编写主题很容易。 如果你还需要选择一个停靠库,我肯定会推荐它。

  • 2011年7月更新: 此库不再销售,但可能很快就会开源

我错过了什么?

这就是我到目前为止所发现的一切。 现在怎么办?

  • 我是否错过了Delphi / C ++ Builder / RAD Studio 2010的任何好的对接库?
  • 我错过了目前为止我看过的图书馆的任何功能吗? 答案如“你错过了FooBar”或“JVCL确实有一个对接小部件,你可以像这样使用它......”听起来真是太棒了。
  • 你下一步会推荐什么?

感谢您的输入 :)

我是一名jedi JVCL开发人员,我在自己的商业内部项目中使用了JvDocking,并发现它坚固可靠。

此外,它是免费的。 它很容易扩展。 它创造了与visual studio 2008时代对接相同的外观和感觉。

我没有找到一个可以完成我想做的事情的单个库,所以经过一些实验后我发现我可以通过使用Native VCL Docking(NVCLD)控件进行一系列自定义修改和一些额外的操作,几乎可以完成我想要的一切控制。

以下列出了我在使NVCLD以我想要的方式工作时遇到的问题。 我在版本之间移植没有太多问题,但那是因为我也有src。

如果您不想自己动手或者您真的想使用第三方库,那么您可能会停止阅读其余部分。 :)

附加组件:

  1. TDockPanel

    这个经过大量修改的对接面板是我的系统的主力。 我在网上找到了原版,但已对其进行了修改,因为它为我的需求提供了更大的灵活性。

  2. 自定义停靠表单 (基本表单)

    通过为我的停靠表单使用自定义基类并在需要时继承它我对所有后代表单进行的修改较少。

自定义修改

这些是对NVCLD组件本身的.pas文件的修改。 由于从D2009开始对基本控件进行了一些增强,因此大多数这些修改不再需要完成。 您应该能够只创建一个新的后代并在那里实现更改,而不是直接修改默认的src文件。

  1. 透明的对接形式

    默认情况下(2009年之前肯定)NVCLD不支持透明表单移动。 几年前发布了一个JVCL补丁,增加了对JVCL的支持,这很容易合并到NVLCD补丁中。

  2. 停靠管理器

    默认的停靠管理器(肯定是2009年之前)不允许更新/自定义按钮图像或停靠标头更改。 这在D2009中得到了纠正我相信当虚拟的必要方法。

  3. 标签对接

    为了支持其他对接组件,我需要修改DockTabSet.pas文件以支持其他组件使用的其他对接属性。 当Docking Manager被修改为之前的提及时,大多数情况已得到纠正。

正如我所说的大多数这些更改,我直接使用Delphi Src文件,你不应该为新版本的Delphi做到这一点。 我的观点是,通过前面的一些工作,您可以拥有一个相当强大的对接系统,而无需使用第三方库。 并不是说它们中的任何一个都有任何问题,但我不想使用它们,除非我别无选择或者没有时间让它按照我的方式工作。

我使用过JCL,我有LMD,DevExpress和Automated QA Docking Library。

您将找到最符合您需求的AutomatedQA Docking Library。 我在我的工作中使用它来完成我的一个项目。

下一步,购买AutomatedQA库:)

来自快乐的顾客。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM