2

调用TDataSet.DisableControls禁用主/详细数据集之间的链接。是否有另一种方法可以在不影响主/从关系的情况下禁用更新数据感知控件?我知道我可以将单个组件设置DataSourcenil,但这对我来说不是实用的方法。

4

2 回答 2

2

该解决方案假定您使用单独TDataSource的实例来链接 UI 控件和主从关系,从设计的角度来看,这无论如何都是一个好主意。

此解决方案的缺点:这会导致您的 UI 出现一些闪烁。

你可以:

  1. 枚举所有TDataSource指向您的TDataSet实例但不涉及主从关系的实例。
  2. 对于每个实例,保存Enabled属性。
  3. 对于每个实例,将Enabled属性设置为False
  4. 运行你的逻辑
  5. 对于每个实例,恢复Enabled属性。
于 2012-09-01T15:09:19.930 回答
1

如今,您有一个完美的选择来实现这一目标。正如德尔福帮助所述:

如果数据集是主/从关系的主,调用 DisableControls 也会禁用主/从关系。设置 BlockReadSize 而不是调用 DisableControls 会在您滚动数据集时更新详细数据集,但不会更新数据感知控件。

于 2019-02-04T05:36:40.770 回答