LMD DockingPack

Latest Version: 2017.1

Introduction

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)!

Features

  • 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 DragModeShowHeader 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 OnCloseQueryOnClose 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
  • Free technical support via forum, e-mail, fax or mail
  • Also available as part of LMD IDE-Tools, LMD ElPack or LMD VCL Complete.

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.

New features in Version 2013

  • 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.

Features from previous releases

  • 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

Screenshots

New VCL Styles support (1)

New VCL Styles support (2)

LMD DockingPack Runtime Demo (1)

Default view of the demo. Fluent tabs on the left, tabbed display etc

LMD DockingPack Runtime Demo (2)

Move mouse cursor over tans on the left, and the connected form is shown

LMD DockingPack Runtime Demo (3)

Docking helpers are shown, when end user moves a dockable form.

LMD DockingPack New dock-panel

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

LMD DockingPack Drag panel content

In this mode the panel is immediately 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

LMD DockingPack VS 2010 style has been implemented

Antialiased rounded corners, antialiased panel header button images, hot tab state, custom floating form border

LMD DockingPack VS 2012 style has been implemented

Antialiased rounded corners, antialiased panel header button images, hot tab state, custom floating form border

LMD DockingPack VS 2012 docking zones

See screenshot for advanced docking zones - now with special tabbed document zones!

LMD DockingPack Style Editor

Full featured LMD DockingPack Style editor - allows you to create any custom visual DockingPack appearance!

Components

TLMDDockSite
Main component of LMD DockingPack. Add to your applications advanced docking features with docked and floating panels as known from MS applications like Visual Studio!
TLMDDockManager
This control is used to save/restore layout data from/to XML in LMD-DockingPack. It also used to setup visual style related properties.

Downloads

Description Date Available Files
LMD DockingPack Trial

Standalone version. Demo projects included. Documentation included as PDF in info folder.Exe-Demos provide compiled version of example project.

This is a LMD 2017 release and should not be used at the same time with older release packages.

Delphi XE2 (and better) release contains 32bit + 64bit support. Latest ServicePack required for XE2 + XE6 releases.

Installation problems? Read the corresponding Package Installation Wiki entry.

Terms of use (Trials) / License Agreement / Support Topics

January 24, 2017
LMD HelpFiles for Standalone Packs

Helpfiles for BarPack, ChartPack, FxPack etc.

January 24, 2017

© LMD Innovative, Germany. All rights reserved. All other trademarks are acknowledged.