代码之家  ›  专栏  ›  技术社区  ›  David Mohaimin Moin

Delphi/C++Builder对接库的建议?

  •  47
  • David Mohaimin Moin  · 技术社区  · 14 年前

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

    VS2010 UI and docking screenshot

    它具有以下特点:

    • 停靠到标签页,以及并排
    • 看起来也不错(主题/UI方面)

    我有困难找到一个良好的质量对接库使用RAD Studio 2010,并寻求建议


    • 2011年7月2日更新: 这个问题考察了Delphi/C++Builder可用的每一个停靠库,所以我试图让它保持最新。我知道有两个变化:
      • 现在拥有AutomatedQA的SmartBear拥有 end-of-lifed AutomatedQA's docking library . 这是我推荐买的。他们正在考虑对其进行公开采购。
      • 我对DevExpress对接的一个问题(这使得它不值得购买)是它不支持VS2008/10风格的对接,带有对接小部件,拖动时透明覆盖等等。 They are now implementing it . 正因为如此,而且由于AQDocking不再销售,如果我现在问这个问题,我接受的答案是 购买DevExpress对接

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

    内置VCL对接

    这允许窗体停靠在其他窗体或控件上,但看起来非常基本。窗体使用XOR绘制的轮廓进行拖动,这在Vista和Win7上非常糟糕。有一个TTabDockSet控件用于选项卡式停靠窗体,但我不知道如何控制停靠窗体的标题在停靠后的呈现方式。我认为实现并排停靠必须手动完成,动态创建新的docksite面板。radstudioide的停靠窗口比这个(例如,拖动窗体时的透明矩形)要光滑一些,这很奇怪,因为我认为它使用了VCL停靠支持。

    JVCL docking

    JVCL docking test program

    它看起来有很多缺陷(允许在第一个窗体上放置第二个窗体,但会冻结程序),并且没有内置的选项卡式dock支持或任何类型的放置位置小部件。

    LMD Docking Pack

    然而,演示似乎相当不可靠。我已经安装了最新的评估版本,创建了一个新项目,其中包含一个dock站点和几个面板,并按Run键,结果如下:

    LMD docking

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

    DevExpress ExpressDocking

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

    DevExpress docking

    这个控件是不稳定的,在Windows中似乎没有很好的主题,甚至使用XP风格。它确实有选项卡式对接,但它使用的是XOR-ed大纲,这在XP或Vista上并不好用。它也没有任何类型的停靠小部件。坦白地说,它看起来像是从windowsxp时代就没有更新过。 This is being improved .

    AutomatedQA / SmartBear docking library

    这是迄今为止所有图书馆中最有前途的。

    AutomatedQA docking library

    AQTime ,这是一个优秀的分析器,似乎是用自己的停靠库编写的,它工作得很好。不过,最新版本的docking library试用版下载是针对RAD Studio 2009的,对于安装到2010中给出的建议是不受支持,您应该重新编译源代码。演示没有源代码,我们没有RS2009,安装程序拒绝安装,除非我们这样做,即使我们设法让它安装,我们不能使用它,因为我们需要重新编译不存在的源代码。

    我和他们的支持团队联系过,他们指给我看 this thread . 我还发现了另一条 customers asking much the same thing . 我已经回复了,希望能听到更好的消息。我不想推荐我们买一个我无法评估的产品,尤其是当我们的IDE不支持它的时候。

    我错过了什么?

    到目前为止我都找到了。现在怎么办?

    • 我错过了任何Delphi/C++ Builder/RAD Studio 2010的好的对接库吗?
    • 到目前为止,我看过的库中有没有遗漏任何功能?一个像“你错过了FooBar”或者“JVCL确实有一个停靠小部件,你可以这样使用它……”这样的回答听上去会非常棒。
    • 你建议我下一步做什么?

    感谢您的意见:)

    3 回复  |  直到 10 年前
        1
  •  2
  •   buttercup    14 年前

    下一步,购买AutomatedQA库:)

    来自一个快乐的顾客。

        2
  •  6
  •   Warren P    13 年前

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

    而且,它是免费的。很容易扩展。它创建的外观和感觉与VisualStudio2008时代的对接差不多。

        3
  •  3
  •   Community Mike Causer    4 年前

    我还没有找到一个库可以做我想做的所有事情,所以在做了一些实验之后,我发现我可以通过使用原生VCL停靠(NVCLD)控件来做我想做的所有事情,这些控件带有一系列自定义修改和一些附加控件。

    下面是我在让NVCLD按我想要的方式工作时遇到的一些事情。我在版本间移植没有太多问题,但那是因为我也有src。

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

    1. t仪表板

    2. 通过为停靠窗体使用自定义基类,并在需要时继承它,我可以对所有子窗体进行较少的修改。

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

    1. 透明对接窗体

      默认情况下(当然是2009年以前),NVCLD不支持透明表单移动。几年前发布了一个JVCL补丁,它为JVCL添加了这种支持,这种支持很容易集成到NVLCD补丁中。

    2. 停靠管理器

      默认的停靠管理器(2009年以前的版本)不允许更新/自定义按钮图像或停靠标题更改。这是纠正在D2009我相信当必要的方法,使虚拟。

    3. 选项卡式对接

    正如我所说的,我直接对delphisrc文件做了大多数更改,对于Delphi的较新版本,您不需要这样做。我的观点是,只要预先做一点工作,你就可以拥有一个相当健壮的对接系统,而不必求助于使用第三方库。并不是说它们有什么问题,但我宁愿不使用它们,除非我别无选择或没有时间让它按我的方式工作。

    推荐文章