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

# TWinControl.DoubleBuffered

When enabled, it reduces flicker when the control is painted.

## Declaration

Source position: controls.pp line 2337

`public property TWinControl.DoubleBuffered : Boolean read FDoubleBuffered write SetDoubleBuffered stored DoubleBufferedIsStored;`

## Description

Paint requests are typically buffered in the message queue. When a paint message arrives, all elements of the control are drawn onto the screen, according to their type, style, state and content.

This can cause flicker, when stacked controls wipe out preceding paintings, e.g. when unchanged text is erased from the screen before it is painted again, when it takes some time to retrieve the text of list entries, or wrapping long text at the current control boundaries. Owner-drawing also can cause noticeable flicker.

To reduce such flicker, DoubleBuffered controls use a bitmap buffer into which all painting is redirected. When the bitmap has been updated, a paint request is queued for the control. When that paint request is received again, the prepared bitmap is output in one fast BitBlt transfer, eliminating any flicker.

All this happens automatically when DoubleBuffered is set to True; no additional changes are required in application or custom control code.