如何在选择dbgrid中的行时填充组合框?

时间:2011-03-29 11:56:05

标签: delphi combobox delphi-2007 dbgrid

在Delphi 2007中,我有一个DBGrid。我需要在选择DBGrid中的行时填充ComboBox。 ComboBox中的数据取决于所选行,并且对于每个选定的行可以是不同的。

DBGrid包含产品订单。当选择订单时,我需要一个ComboBox来填充订单中产品的批号。执行订单时,此批次编号将保存在订单记录中。

我找不到onSelect或onChange事件,我可以用来做这件事。

那我怎么能这样做呢?

3 个答案:

答案 0 :(得分:2)

您应该使用TDataSet.AfterScroll事件

答案 1 :(得分:1)

如果数据来自DataModule中的DataSet,从注释到@Roman response,您可以依赖于TDataSource事件。

如果您的数据源也位于数据模块中,您可以在表单中放置一个新的DataSource(IMO就在它所在的位置)。

然后,使用帮助中的TDataSource.OnDataChange事件:

编写 OnDataChange 事件处理程序,以便在编辑当前记录中的字段并将应用程序移动到其他字段或关联数据集中的当前记录更改时执行特定操作。 OnDataChange在必须在不支持数据的控件中同步数据显示的应用程序中特别有用。此事件通常用于确保控件反映数据集中的当前字段值,因为它由所有更改触发。

当链接数据集移动到新记录或刷新记录缓冲区时,Field参数为nil。当更改属于特定字段(用户或程序本身更改其值)时,字段不为零。

答案 2 :(得分:-1)

我建议双击事件(OnDblClick)在用户用鼠标点击时捕获,OnKeyPress用于Enter键(键=#13)