我的申请中有许多“主/详细”表单。 TDBGrid,其中每行显示该项目的一些核心值。网格下方通常是一个“详细信息区域”,显示当前在网格中选择的项目的完整信息。
目前我正在监听网格后面 TADOQuery 的“AfterScroll”事件,但它似乎给了我太多事件。
AfterScroll 是正确的事件吗?你是怎么做到的?
最佳答案
“标准”方式(在数据感知环境中)是不使用 GUI 控件进行控制,而是使用数据组件。
大多数表数据集都提供 MasterSource
(链接到适当的 TDataSource
组件)和 MasterFields
属性。
您可以使用它们以主从关系链接数据集。
然后您的详细网格(或其他数据感知控件)只需要关心链接到正确的数据集。
编辑
其他类型的数据集(例如 TQuery
、TADOQuery
)有时会提供用于类似目的的 DataSource
。来自 Delphi 5 帮助:“设置数据源以使用另一个数据集的字段值自动填充查询中的参数。
”
然而,还有很多复杂的情况(阅读帮助时将会观察到)。因此,建议使用 TTable
或 TADOTable
作为详细数据集。
关于delphi - delphi 5 中观察 DBGrid 中选择更改的标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107173/