0

在 Delphi 2007 中,我有一个 DBGrid。I need to fill a ComboBox when a row in the DBGrid is selected. ComboBox 中的数据取决于所选行,并且对于每个所选行可能不同。

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

我找不到可以用来执行此操作的 onSelect 或 onChange 事件。

那么我该怎么做呢?

4

3 回答 3

2

您应该使用 TDataSet.AfterScroll 事件

于 2011-03-29T12:11:47.953 回答
1

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

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

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

编写OnDataChange事件处理程序以在当前记录中的字段已被编辑并且应用程序移动到另一个字段时,或者当关联数据集中的当前记录发生更改时执行特定操作。OnDataChange 在必须同步数据显示在非数据感知控件中的应用程序中特别有用。此事件通常用于确保控件反映数据集中的当前字段值,因为它由所有更改触发。

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

于 2011-03-29T15:27:51.750 回答
-1

我建议双击事件(OnDblClick)来捕捉用户用鼠标点击和 OnKeyPress 的 Enter 键(Key=#13)

于 2011-03-29T12:13:10.007 回答