Recommendations for a docking library for Delphi / C++Builder?

孤街醉人 提交于 2019-12-02 14:28:12

I have used JCL, I have LMD, DevExpress and Automated QA Docking Library.

The closest you will find that will meet your need is the AutomatedQA Docking Library. I use it in my work for one of my projects.

Your next step, buy the AutomatedQA Library :)

from a Happy Customer.

I am a jedi JVCL developer, and I have used JvDocking in my own commercial in-house projects, and found it to be solid and reliable.

Also, it's free. It's easy to extend. It creates a look and feel about the same as visual studio 2008 era docking.

I haven't found a single library that does everything that I would like, so after doing some experimenting I found that I could do almost everything I wanted by using the Native VCL Docking (NVCLD) controls with a series of custom modifications and some additional controls.

The following is a list things that I've run across in getting the NVCLD to work the way I wanted. I haven't had many problems porting between versions, but that's because I've got the src as well.

If your not looking to roll your own or you really want to use a 3rd party library then you can probably stop reading the rest of this. :)

Additional Components:

  1. TDockPanel

    This heavily modified docking panel is the workhorse my system. I found the original on the net but have modified it since to provide a little greater flexibility for my needs.

  2. Custom Docking Forms (Base form)

    By using a custom base class for my docking forms and inheriting it when needed I have less modifications to do on all of the descendant forms.

Custom Modifications

These are modifications to the .pas files of the NVCLD components themselves. Most of these modifications no longer have to be done because of some enhancements made to the base controls starting with D2009. You should be able to just create a new descendant and implement the changes in the there instead of modifying the default src files directly.

  1. Transparent Docking Forms

    By default (pre-2009 for sure) the NVCLD doesn't support the transparent form movement. There was a JVCL patch released a couple of years back that added that support to the JVCL which was simple to incorporate into a NVLCD patch.

  2. Docking Manager

    The default docking manager (pre-2009 for sure) didn't allow for newer/custom button images or docking header changes. This was rectified in D2009 I believe when the necessary methods where made virtual.

  3. Tabbed Docking

    To support the Additional docking components I needed to modify the DockTabSet.pas file to support additional docking properties used by the additional components. Most of this was corrected when the Docking Manager was modified as mentions previously.

As I stated most of these changes I made directly to the Delphi Src files and you shouldn't need to do that for newer versions of Delphi. My point is that with a little bit of work up front you can have a fairly robust docking system with out resorting to using a 3rd party library. Not that there is anything wrong with any of them, but I prefer not to use them unless I have no other choice or don't have the time to make it work my way.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!