Jump to content
Dave Novo

Docking Example

Recommended Posts

Hello all,

 

If you go to the Delphi help

 

Docking (Delphi) - RAD Studio Code Examples (embarcadero.com)

 

You see if refers to a "docking demo". The general help for the built is docking is woefully inadequate.

 

If you go to 

RAD Studio Code Examples (embarcadero.com)

 

You find that the code examples are supposed to be at 

Embarcadero Technologies · GitHub

or

GitHub - Embarcadero/RADStudio11Demos: Delphi and C++Builder Demos for Embarcadero RAD Studio version 11

 

I cannot find a docking demo in either location. Has this been removed from the demos? Or am I just going crazy and its really there. Searching the github for the work "dock" and also cloning the repo and searching for "dock" does not turn up any files

Share this post


Link to post

I found a demo project at https://github.com/Walibeiro/DockDemo. And a 9 page article that Brian Long wrote, titled Drag & Dock, published in issue 63 (November 2000) of The Delphi Magazine.

 

I did not find anything more recent. I don't recall any significant changes to docking in the Delphi VCL. It has also been 9 years since I worked on an application with dockable forms.

Share this post


Link to post

Walibeiro's code works in principle, even if it still has a few bugs.
But it looks better than Delphi's docking itself.

 

As we are considering whether or how we should replace MDI,
I also put together a few initial demos.

https://github.com/geheimniswelten/DockingDemos

 

Basically, however, you can say that everything has at least one flaw somewhere and nothing works perfectly.

 

I was sure that Borland/Embarcadero had another docking variant,
but I can't find it at the moment. And they don't release the docking component of their IDE either.

 

There was something in the Delphi XE demo folder,
but you can no longer find it in the demos of the current Delphis.
(but in principle it was the same as my DockDemo.exe)
The https://sourceforge.net/p/radstudiodocdem/code/HEAD/tree/branches/RadStudio_2010/DelphiCodeExamples/Docking/
looks partly like the one from Walibeiro.

 

https://www.delphipraxis.net/152925-welche-docking-library-verwenden.html

Edited by himitsu

Share this post


Link to post

I gave up on the VCLs docking a long time ago, after having spent a ridiculous amount of time trying to work around its numerous bugs. It's broken beyond repair and should be deprecated and replaced.

 

I use DevExpress docking now and I think it works really well.
That said, from watching our users, and even our in-house supporters, I can tell you that ordinary users don't understand how to use docking at all. It's really painful to watch them trying to get the dock layout they want. So I think it's best to try and limit the range of docking features available to the user. For example: No auto-hide panels, no docked maximize/minimize. Even floating dock panels might be too advanced or simply not usable (undocked forms obscure the windows below) or unnecessary (multi-monitors are being replaced by wide monitors).

Share this post


Link to post

The IDE docking is based on TDockTabSet, which was introduced in Delphi 2005.  It has received some attention later including Vcl styling.  The only demo I could find is an old one by Jeremy North, but the source code is not available.  Jeremy also seemed to have expanded this component in his QualityCentral client (look at the images at the end of the article), the source code of which is also not available.

 

3 hours ago, Anders Melander said:

It's broken beyond repair

It is not the sleekest implementation, but apparently it works OK in the IDE. 

3 hours ago, Anders Melander said:

So I think it's best to try and limit the range of docking features available to the user. For example: No auto-hide panels, no docked maximize/minimize.

Agree in general, but it depends on the application.  All the IDEs I know of, including Visual Studio, use docking extensively.  Same is true for VS Code for example (but no floating forms though).

 

In PyScripter I use a heavily modified version of JvDocking (part of the JVCL library), but I am still looking for a better open source library.  I may have to create one.

Edited by pyscripter
  • Like 1

Share this post


Link to post
29 minutes ago, pyscripter said:

The IDE docking is based on TDockTabSet, which was introduced in Delphi 2005.  It has received some attention later including Vcl styling.  The only demo I could find is an old one by Jeremy North, but the source code is not available.

23929_tdocktabset_sample_application.ZIP

 

 

11 minutes ago, pyscripter said:

It is not the sleekest implementation, but apparently it works OK in the IDE. 

Last time I looked, and it's been a while, the docking manager used in the IDE was a different one from the one in the VCL.

 

The behavior of the VCL docking manager is (was?) hardcoded into TControl in a way that made it impossible to fix from the outside.

 

17 minutes ago, pyscripter said:

Agree in general, but it depends on the application.

I would say it depends on the users. I was talking about typical non-technical end-users. Obviously highly technical users, such as developers, have no problems using docking.

  • Like 2

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×