Unit 'Controls' Package
[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] [#lcl]


Allows to reduce flicker in the painting of the control.


Source position: controls.pp line 2275

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


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.

CT Web help

CodeTyphon Studio