LMD DockingPack is a collection of native VCL components and additional classes that can be compiled into your application royalty free. This package was designed to help you building applications with entirely customizable and modern user interface. Add docking features with floating panels as known e.g. from Visual Studio (2005, 2010 or even the new Metropolis style in VS 2012)!
Advanced site control with horizontal, vertical or tabs dock zones, splitters and shifting “auto hide” zones.
Transparent hot-spots drag-over active areas.
Additional drag-over active areas in tab zones and splitters.
Ability to place required user interface controls on the panels TLMDDockPanel - prevents having many distinct forms in the project.
Advanced design-time features with drag-and-drop zones rearrangement.
True proportional zones resizing. The LMD-DockingPack uses double coefficients to store proportional sizes that prevent proportion-lost bug while very slow resizing.
The notion of “space” zone. That is the central zone with main application content. The central zone has following useful special properties: space zone have highest priority to resize when the dock site is resizing, leaving all other edge zones with the same size; edge zones “auto hide” side is automatically detected relatively to space zone.
Using space zone gives following additional features: Unlike Delphi standard sites, like TPanel, dock-client can be docked into empty site to the edge, not only to the whole site area. This is more naturally from the user viewpoint. Dock-out of the space panel from the site does not corrupt edge zones layout.
Built-in native tabbed documents support: including special hotspot areas, close tab buttons and special floating form style.
Allowing locking some panels to prevent them to be dock-out from the site, using DragMode, ShowHeader and Buttons properties of the TLMDDockPanel. Allowing intercepting dock-dropping using OnCustomInsertQuery and OnCustomInsert events of the TLMDDockSite. These two features allow organizing fully custom central zone, like “tabbed documents” in Microsoft Visual Studio.
Advanced global saving/loading of the current dock layout. The TLMDDockManager control allows to save/load any all dock sites, including dynamically created floating sites, in XML format. TLMDDockSite.LoadDesignLayout property and TLMDDockManager.ApplyDesignLayout method allows to defer applying design-time layout in application to prevent flickering.
Advanced dock panel lifetime management with OnCloseQuery, OnClose events and Release method.
Full sourcecode of library
One year subscription included, Free updates via Customer Portal
Extensive demo project demonstrating advanced features
A Site License covers unlimited number of developers in same organization at one location
Support for new RAD Studio IDE designer feature introduced in 10.4 and better
New properties (AutoHideOptions, IsDocked) and events (OnActiveChanged)
Improved dpi scaling and multimonitor support
Full source of DockingStyle Editor included for LMD VCL Complete customers!
New features in Release 2019
Support for new RAD Studio IDE designer feature introduced in 10.2.2 and better
Support for new themes in IDE
Improved dpi support
New features in Release 2018
New version of DockingStyle Editor (available in \tools folder). The new exe isn’t packed with an exe-packer (which caused some virus engines to generate false positives).
High dpi support
Improved Multimonitor support
New features in Release 2017
Alpha blended shadow around floating form windows (extending the thin (one pixel) border in previous releases). Resizing of floating forms is now much more comfortable. The shadow (or glow) look is a part of the style, thus it can be customized by using the Style Editor.
Several built-in styles (VS2012 based) were updated to use new shadow feature.
TLMDDockStyle.GetElem method has been made public to allow dynamic style change.
BREAKING CHANGE: TLMDDockManager.StayFloatFormsOnTop property is deprecated and is longer working. In previous releases this feature worked differently in older and newer IDE versions. Starting with release 2016.4, functionality is the same over all versions (like in latest VCL releases floating forms are owned (in Windows sense) by the main form, and always stay on top of it (without using WS_EX_TOPMOST flag).
New features in Release 2016
New VCL Styles support has been added! New special built-in style, which is called VCLStyle can be used together with VCL Styles feature of the latest Delphi versions (XE2 and up). The style utilize new dynamic colors feature of the LMD-DockingPack styling system to reflect corresponding VCL Style colors.
The dynamic colors feature allow to specify colors in the style’s XML as references to VCL Style colors, font colors and elements colors. As well, some predefined color modification functions, like Highlight, Shadow and Blend, can be used. Moreover, internal system support Accent and AccentText functions, which return bright accent color for each VCL Style; for most styles this color correspond to scButtonFocused color, but for some styles it has been hard-coded to provide adequate accent.
New features in Release 2014
A full featured DockingPack Visual Theme editor was added (created with IDE-Tools controls). It is possible now to design custom docking themes for any possible use case (most theme/style engines don’t support all required elements/parts for advanced visual docking appearance). DockingPack can now be adapted to any visual design, regardless of used style/theme engine!
All built in styles (including Visual Studio 2012 Blue and Dark Themes) are included in editable formats.
Features from previous releases
Extensive rework of internal engine and support of enhanced new and unique features (like e.g. tabbed document zones, advanced hotspot areas) to continue our aim to provide the best available docking solution for Delphi/C++Builder!
New tabbed documents feature, which allows to organize application documents in tabs - just like in Delphi or MicrosoftÃ¢â€žÂ¢ Visual Studio!
Fully reworked style engine: stretchable 32-bit bitmaps which are based on XML style definitions.
New TLMDDockManager.UseTabbedDocs property which allows to turn tabbed documents feature on/off.
New TLMDDockPanel.ClientKind property, which allows to specify whether the panel is part of the document area.
New TLMDDockManager.OnGetClientKind event, which allows to specify whether the client (including non-panel clients) is a tool panel or a document.
New big-cross hotspot and its additional active areas (hsaDocsLeft, hsaDocsTop, hsaDocsRight, hsaDocsBottom) which reflect new tabbed documents feature.
New Metropolis VS2012 style. VS2010 and VS2005 styles were also updated.
Old TLMDDockManager.Style property and all its sub-properties are no longer available. It has been replaced with new public TLMDDockManager.Style property, which is a reference to the engine style object. New StyleName published property for design-time access.
New TLMDDockPanel.OnClose event with CloseAction var parameter. New Release method, which allows asynchronous destruction of the panel (like in TForm).
Floating form maximization feature preview (not finished yet, will be finalized until LMD 2013.1 platform release).
Panel client area invalidation has been improved to reduce child controls re-drawings.
On the “LMD Docking” palette page “New dock-panel” item has been added. The item is not a simple component item. Dragging it over a docking site will initiate interactive (drag-dock-like) process of the new panel creation
“Drag panel content” mode has been added. In this mode the panel is immediatelly undocked and placed onto the floating site at the dragging start; then, the floating site form is dragged with the mouse instead of old semi-transparent blue rect. Don’t worry, semi-transparent blue rect is still here, and used to highlight accepted positions :)
Animation of hotspots and blue rect has been added. Alpha (fading) and bounds can be animated.
TLMDDockZone.ResizeKind property, accessible at run-time, has been added. In addition to default proportional resizing defined by zrkProportional value, new zrkFixed value can be used to exclude some zones from proportional resizing algorithm.
TLMDDockZone.Index property has been made read-write, so its now possible to set the index to specify the order of a child zone inside its parent zone. The Indexes of child zones determine they visual order in its horz-alignment or vert-alignment parent zone, or the visual order of the corresponding tabs in tabbed parent zone.
TLMDDockZone.Width and TLMDDockZone.Height properties has been made read-write, so its now possible to programmatically setup sizes of children zones inside a horz-alignment or vert-alignment parent zone. Due to proportional zones resizing it can be still hard to set required sizes of several child zones, because assigning at each iteration the size of a child zone will correct sizes of other child zones within the same parent; so sizes, set on previous iterations will be changed. To solve this problem TLMDDockZone.SetChildrenSizes method has been added, which allows to set sizes of all children at ones.
Docking pack has been made more consistent with VCL ActiveControl concept. Also, the issue, with several active panels (in case of floating panels) visible at a time, has been fixed. Now, a panel is painted as active, only, when its parent form is active and it contains form’s ActiveControl.
VS 2010 style has been implemented: antialiased rounded corners, antialiased panel header button images, hot tab state, custom floating form border. Corresponding TLMDDockVS2010Painter class implements this style
Native docking pack styles
VS 2012 styles (normal, dark and blue):
VS 2010 sytle:
Customizable drag&drop design-time layouting
Custom docking styles designer
Full featured LMD DockingPack Style editor - allows you to create any custom visual DockingPack appearance!