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

# TDockTree.InsertControl

Positions DropCtl relative Control, using the alignment specified by InsertAt.

## Declaration

Source position: controls.pp line 2635

`public procedure TDockTree.InsertControl(`
`AControl: TControl;`
`InsertAt: TAlign;`
`DropControl: TControl`
`); override;`

## Arguments

`AControl` |  | The control beneath which to place DropControl.
`InsertAt` |  | How to insert DropControl.
`DropControl` |  | The control to add.

## Description

InsertControl determines the layout and appearance of the just docked control, forcing a repaint of the container control if necessary.

When SetReplacingControl has been called with a non-Nil Control before, the dropped control only should replace that control.

A tree docking manager organizes the docksite into layers of horizontal or vertical orientation. As long as no more than one control is docked into a docksite, the tree has no orientation at all. The second docked control determines the orientation of the docksite and the dock tree. All further drops are either isogonal (in direction of the zone orientation) or orthogonal (opposite to the zone orientation). On an isogonal drop a new leaf zone is created for the dropped control, as a sibling of the already existing child zones. On an orthogonal drop the zone containing the DropControl becomes the root of another subtree, whose initial members are the leaf zones for Control and DropCtl.

One value of InsertAt (alCustom) is reserved for notebook docking, where DropCtl is replaced by a tabbed notebook, and Control and DropCtl are moved into pages of the notebook. The notebook is a docksite of its own, further drops into the notebook are handled by the notebook itself, the DockManager of the host docksite is not involved.

## See also

TDockManager.RemoveControl |  | Removes the undocked control from the docksite layout.