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

# TDragDockObject

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

A drag object for drag-dock.

## Declaration

Source position: controls.pp line 589

`type TDragDockObject = class(TDragObject)`
`protected`
`procedure AdjustDockRect(); virtual;` |  | Adjust the DockRect relative to the dragging hotspot (DockOffset).
`function GetDragCursor(); override;` |  | Gets the drag cursor shape for the class instance.
`procedure EndDrag(); override;` |  | Finish docking.
`procedure InitDock(); virtual;` |  | Initializes the dragging coordinates.
`procedure ShowDockImage; virtual;` |  | Shows the DockRect, and remembers the coordinates in EraseDockRect.
`procedure HideDockImage; virtual;` |  | Hides the DockRect, and invalidates EraseDockRect to prevent further erases.
`procedure MoveDockImage; virtual;` |  | Moves an already visible DockRect.
`function HasOnDrawImage; virtual;` |  | Checks for an assigned OnDrawDockImage event handler.
`public`
`property DockOffset: TPoint; [rw]` |  | The hotspot offset of the dragged DockRect.
`property DockRect: TRect; [rw]` |  | Screen coordinates for a possible drop location.
`property DropAlign: TAlign; [rw]` |  | How the dragged control will be docked, relative to the target control.
`property DropOnControl: TControl; [rw]` |  | The already docked control, relative to which the dragged control will be docked. Nil for an empty docksite.
`property Floating: Boolean; [rw]` |  | The final state of the dragged control (after drop).
`property IncreaseDockArea: Boolean; [r]` |  | Indicates whether the dock site is enlarged after a Control has been docked.
`property EraseDockRect: TRect; [rw]` |  | Area to be erased when refreshing the display for the docking rectangle.
`end;`

## Inheritance

`TDragDockObject` |  | A drag object for drag-dock.
`TDragObject` |  | Base class for managing drag operations and user feedback.
`TObject`

## Description

This object type serves two main purposes: it allows one to distinguish between drag-drop and drag-dock operations, and it implements docking specific information and behavior.

The primary use is for tree docking, as assumed by methods in TControl and TWinControl.

## See also

TDragObject |  | Base class for managing drag operations and user feedback.