Delphi TDBGrid使用下拉列表进行编辑

时间:2016-09-12 18:46:18

标签: delphi drop-down-menu combobox delphi-7 tdbgrid

我必须对旧的Delphi v7应用程序进行维护,该应用程序使用TDBGrid,允许使用下拉列表进行内部编辑。

问题是:网格将仅显示数据源中存在的值。没有编辑,这根本不是问题。但是,如果我更改某个值,网格将仅在更新基础寄存器后显示新设置的值(直到显示" old"值)。

这仅适用于下拉列表。其他输入类型(复选框,文本编辑)可以正常工作。

编辑本身也可以正常工作:当寄存器为UPDATE时,更改的值实际上反映在数据源中。我唯一的问题是显示这个尚未更新的值。

我不知道如何调试它,或进一步检查此行为。因此,即使您没有完整的答案,请说明我还能做些什么来找到解决方案。

更新

该项目最初使用的是TDB3DGrid(其来源我不知道),但为了简化,我已将其更改为TDBGrid。无济于事。唯一的变化是真/假列现在显示为文本,并编辑为文本框(显示和接受" True"和" False"字符串);使用TDB3DGrid,它显示了复选框。

其他列(未通过下拉列表编辑)很好:编辑后,即使在更新基础寄存器之前,也会正确显示新值。

我仍在追踪填充下拉列表的替代品列表来自哪里。

还在尝试使用MCVE。

更新2

显然,(现在)受TDBGrid影响的TDBGridColumn具有空PickList属性。当然是设计时间。但我认为这在运行时没有改变。

TDBGrid的源代码是TQuery的子代,其受影响的字段FieldKind等于fkLookup。为该字段设置的其他属性包括FieldNameKeyFieldsLookupDataSetLookupKeyFieldsLookupResultField

0 个答案:

没有答案
相关问题