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

# TLazDockForm

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

TLazDockForm - the default DockSite for a TLazDockTree and for TCustomAnchoredDockManager

## Declaration

Source position: ldocktree.pas line 126

`type TLazDockForm = class(TCustomForm)`
`protected`
`procedure Notification(); override;` |  | Notification - if the required operation is removal, sets MainControl to nil, then calls inherited Notification
`procedure UpdateMainControl;` |  | UpdateMainControl - sets MainControl to a new value
`procedure MouseUp(); override;` |  | MouseUp - calls inherited MouseUp then finds position and appropriate header
`procedure MouseDown(); override;` |  | MouseDown - performs inherited MouseDpwn, then finds position and appropriate header
`procedure MouseMove(); override;` |  | MouseMove - performs inherited Mousemove, then finds position and appropriate header
`procedure MouseLeave; override;` |  | MouseLeave - performs inherited MouseLeave, and sets the local store of position to indicate absence of the mouse
`procedure PaintWindow(); override;` |  | PaintWindow - calls inherited PaintWindow, then creates new canvas and handle at cursor position, inserts header caption, title and images
`procedure TrackMouse();` |  | TrackMouse - finds position of the mouse, which part of the control it occupies (whether header or main part of control), and state of buttons
`public`
`constructor Create(); override;` |  | Create - constructor for TLazDocForm: calls inherited Create, then fills in the header
`destructor Destroy; override;` |  | Destroy - destructor for TLazDockForm: removes header then calls inherited Destroy
`function CloseQuery; override;` |  | CloseQuery - calls inherited method, then asks all top level forms if form can close
`procedure UpdateCaption; virtual;` |  | UpdateCaption - brings caption up-to-date if there have been changes
`public`
`class procedure UpdateMainControlInParents();` |  | UpdateMainControlInParents - make sure all parents recognise the presence of MainControl
`public`
`function FindMainControlCandidate;` |  | FindMainControlCandidate - finds forms and controls in the docktree heirarchy that could act as the MainControl
`function FindHeader();` |  | FindHeader - identifies the part of the dock form that is the header, and returns a TControl
`procedure InsertControl(); override;` |  | InsertControl - calls inherited method then updates the main control
`function IsDockedControl();` |  | IsDockedControl - checks if control is a child, not a TLazDockSplitter and properly anchor docked; returns True if OK
`function ControlHasTitle();` |  | ControlHasTitle - returns True if nominated control is visible, is a docked control and has a border spacing greter than zero
`function GetTitleRect();` |  | GetTitleRect - returns the coordinates of the title retangle for the nominated control
`function GetTitleOrientation();` |  | GetTitleOrientation - retrns the orientation (horizozntal or vertical) of the title in the nominated control
`property MainControl: TControl; [rw]` |  | The identity of the MainControl in the docked form (used for the default caption)
`end;`

## Inheritance

`TLazDockForm` |  | TLazDockForm - the default DockSite for a TLazDockTree and for TCustomAnchoredDockManager
`TCustomForm` |  | TCustomForm - the base type for TForm
`TScrollingWinControl` |  | TScrollingWinControl - a class of Window Control that has one or more scroll bars
`TCustomControl` |  | TCustomControl - a base class for many window controls
`TWinControl`
`TControl`
`TLCLComponent` |  | TLCLComponent - base class for LCL components
`TComponent,IUnknown,IInterfaceComponentReference`
`TPersistent`
`TObject`

## Description

TLazDockForm - the default DockSite for a TLazDockTree and for TCustomAnchoredDockManager

    Note: There are two docking managers:
          TLazDockTree uses TLazDockZone to allow docking in rows and columns.
          TCustomAnchoredDockManager does not use TLazDockZone and allows arbitrary layouts.

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