Sign in Join
FPDoc Onlineexperiment

TDataSet.DisableControls procedure

Member of TDataSetpublicIn unit DB

Disable event propagation of controls.

Declaration

pascal
procedure 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 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 ControlsDisabled.

See also

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.