[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Controls' (#lcl)

# TDockManager

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

A base class for managing the docking process

## Declaration

Source position: controls.pp line 489

`type TDockManager = class(TPersistent)`
`public`
`procedure BeginUpdate; virtual; abstract;` |  | BeginUpdate - start updating the dock process
`procedure EndUpdate; virtual; abstract;` |  | EndUpdate - finish updating the dock process
`procedure GetControlBounds(); virtual; abstract;` |  | GetControlBounds - finds the bounds of the control for docking
`function GetDockEdge(); virtual;`
`procedure InsertControl(); virtual; abstract;` |  | InsertControl - insert the specified DropCtl into the nominated Control, using the alignment specified by InsertAt
`procedure LoadFromStream(); virtual; abstract;` |  | LoadFromStream - loads object for docking from a stream
`procedure PaintSite(); virtual; abstract;` |  | PaintSite - a handle for the site to be painted
`procedure MessageHandler(); virtual; abstract;`
`procedure PositionDockRect();` |  | PositionDockRect method for determining the position ( DockRect) where the DropCtl is to be placed on the Client, aligned according to DropAlign
`procedure RemoveControl(); virtual; abstract;` |  | RemoveControl - delete the specified control
`procedure ResetBounds(); virtual; abstract;` |  | ResetBounds to their default values
`procedure SaveToStream(); virtual; abstract;` |  | SaveToStream - saves the docking object to a stream
`procedure SetReplacingControl(); virtual; abstract;` |  | SetReplacingControl - specify the control for replacing
`function AutoFreeByControl; virtual;` |  | AutoFreeByControl - returns True if an object has been automatically freed by a control
`end;`

## Inheritance

`TDockManager` |  | A base class for managing the docking process
`TPersistent`
`TObject`

## Description

TDockManager is an abstract class for managing a dock site's docked controls.

The declaration contains a number of procedure definitions that are 'virtual' and 'abstract'. This means that there is no implementation specified: these essentially represent 'place-holders', and it is the responsibility of the developer of descendant classes to override these methods and implement them as desired.

The latest version of this document can be found at lazarus-ccr.sourceforge.net.