Delphi XE应用程序中的Delphi DBCombobox,仅在.Items中显示值,而不在不合格的数据字段实际值中显示

问题描述 投票:0回答:1

我在使用ADO访问的主/详细应用程序中遇到了一个非常奇怪的DBComboBox问题。如果您有一个包含项列表的DBComboBox(.Style = csDropDown),并且输入了列表中不存在的某些文本,则导航回该记录时,表的DBComboBox字段中的值将不会出现。我已使用下面的DBNavigator.OnClick代码尝试解决此问题,但仅当表中的第一条记录包含不在列表中的值时,它才有效。当您将第一条记录中的DBComboBox的值更改为列表中的值时,DBComboBox文本中将不会出现任何不一致的项目。有没有人找到解决方案?

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
var
    SavePlace : TBookmark;
begin
  if (DBComboBox1.Text='') then begin
    SavePlace := TADODataSet(DBNavigator1.DataSource.DataSet).GetBookmark;
    TADODataSet(DBNavigator1.DataSource.DataSet).Requery;
    TADODataSet(DBNavigator1.DataSource.DataSet).GotoBookMark(SavePlace);
    TADODataSet(DBNavigator1.DataSource.DataSet).FreeBookMark(SavePlace);
  end;
end;
delphi ado master-detail
1个回答
0
投票

很遗憾,我没有安装XE,但是我制作了一个示例项目,重现您在D7和Seattle中的问题。该代码如下所示,我认为您会发现,如果按照以下确切步骤操作,则表明存在某些问题挺奇怪的。

© www.soinside.com 2019 - 2024. All rights reserved.