Calling TDataSet.DisableControls
disables the link between master/detail datasets. Is there another way to disable updating data-aware controls without affecting the master/detail relationship? I know I can set individual component's DataSource
to nil
, but this isn't the practical way for me.
How to use TDataSet.DisableControls with Master/Detail datasets?
2.7k Views Asked by iMan Biglari At
2
There are 2 best solutions below
0

Nowadays you have a perfect option to achieve this. As the Delphi Help states:
If the dataset is the master of a master/detail relationship, calling DisableControls also disables the master/detail relationship. Setting BlockReadSize instead of calling DisableControls updates the detail datasets as you scroll through the dataset, but does not update data-aware controls.
This solution presumes you use separate
TDataSource
instances for linking UI controls and for Master-Detail relations which - from a design perspective - is a good idea anyway.The drawback of this solution: this cause some flickering in your UI.
You could:
TDataSource
instances that point to yourTDataSet
instances but are not involved in Master-Detail relations.Enabled
property.Enabled
property toFalse
Enabled
property.