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
On
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
TDataSourceinstances 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:
TDataSourceinstances that point to yourTDataSetinstances but are not involved in Master-Detail relations.Enabledproperty.Enabledproperty toFalseEnabledproperty.