LMD DockingPack Guide


Using Dock Site Control


The Panels and PanelCount properties represent the collection of dock panels that is placed on the site. Note that this is not always equals to DockClientCount and DockClients properties, because of the ability of docking standard Delphi (not a TLMDDockPanel) clients. If one or more of such clients has been docked into the site, then corresponding count of hosting panels has been created. All these panels will be present in the Panels collection, but will not be in the DockClients collection, because these panels are not true dock clients. Equally, docked standard Delphi (not a TLMDDockPanel) clients will be present in the DockClients collection, but will not be included into the Panels collection, because they are not dock panels.

 

The RootZone property – is the entry point into the site’s zone tree. Zone tree is used as a descriptor of the site structure. It describes how concretely clients are docked in the site. Think about a zone as a description of some area in the docking site. The RootZone always exists, even in empty site; however, all other child zones are dynamically created as a result of docking process. TLMDDockSite supports the following kinds of zones: horizontal split, vertical split, tabs, and simple panel zone. The simple panel zone denotes the zone that contain only dock panel but no child zones. Zones of all other kinds does not contain dock panels directly, instead they contain child zones.

 
The TLMDDockZone class define many properties to describe zone layout: The Panel property links to zones panel; The Zones and ZoneCount properties allows to iterate through child zones; Left, Top, Width and Height properties represents the zone bounds; Splitters and SplitterCount properties represent the descriptors of splitters inside the zone (for horizontal split, vertical split zones); Tabs, TabCount and ActivePage properties represent the descriptors of zone tabs (for tabs zones); Index property can be used to retrieve or change the order of a zone in its parent zone; the order of zones determines they visual order in a horizontal-split or vertical-split parent zone, or tabs order in tabs parent zone; ResizeKind property allows to specify whether the zone should participate in proportional resizing algorithm: for example, if a width of horizontal-split parent zone is changed (due to size resizing), the widths of all child zones that has ResizeKind = zrkProportional, will also be changed proportionally.

 

The DockControl method can be used instead of standard Delphi ManualDock method to dock clients into TLMDDockSite. Using DockControl method allows to dock clients relatively to any existing zone which is more precise, then specifying DropControl parameter in ManualDock method.

 

The FindPanelByClient and FindZoneByClient methods allow searching for the panel or zone that corresponds to the docked client. Note that non-TLMDDockPanel clients a host-panel is dynamically created as a part of docking process.

 

The GetHitTest method allows querying information about what is shown in the site at specified coordinates point.

 

The OnDockOver and OnDockDrop events replace analogous Vcl events by events with enhanced parameter list, including zone parameter.