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

# TDataSet.DisableControls

Disable event propagation of controls

## Declaration

Source position: db.pas line 1306

`public procedure TDataSet.DisableControls;`

## Description

DisableControls tells the dataset to stop sending data-related events to the controls. This can be used before starting operations that will cause the current record to change a lot, or before any other lengthy operation that may cause a lot of events to be sent to the controls that show data from the dataset: each event will cause the control to update itself, which is a time-consuming operation that may also cause a lot of flicker on the screen.

The sending of events to the controls can be re-enabled with Tdataset.EnableControls. Note that for each call to DisableControls, a matching call to EnableControls must be made: an internal count is kept and only when the count reaches zero, the controls are again notified of changes to the dataset. It is therefore essential that the call to EnableControls is put in a Finally block:

    MyDataset.DisableControls;
    Try
      // Do some intensive stuff
    Finally
      MyDataset.EnableControls
    end;

## Errors

Failure to call enablecontrols will prevent the controls from receiving updates. The state can be checked with TDataset.ControlsDisabled.

## See also

TDataset.EnableControls |  | Enable event propagation of controls
TDataset.ControlsDisabled |  | Check whether the controls are disabled

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