将 DBGrid 绑定到自定义组件

Bound DBGrid to Custom Component

我在 Delphi 10 西雅图制作了一个组件。 我的组件是一个面板,包含一个 TDBGrid(来自 TCustomDBGrid)和一个 TEdit 控制。 当我将组件放入窗体时,如果我不更改网格列,一切都很好。 但是当我更改有界 DBGrid 列时,运行 时间发生错误并显示消息:"Error reading TColumn.MyGrid.Expanded: Property MyGrid.Expanded dos not exist. ..." 对于发现的错误,我以文本形式打开表单并查看以下代码:

MyGrid.Columns = <
  item
    MyGrid.Expanded = False
    MyGrid.FieldName = 'Sid'
    MyGrid.Visible = True
  end
  item
    MyGrid.Expanded = False
    MyGrid.FieldName = 'UserName'
    MyGrid.Visible = True
  end>
FilterDataSource = DataSource1

因此,我的组件无法正常工作。

我编写了自己的组件,将 TDBGrid 嵌入到 TPanel 中,并编写了一个项目来测试它。当网格包含持久化的 TColumns 时,我尝试重新加载我的项目时遇到了与您相同的错误。

所以,我在这里发布了自己的问题

并从 Delphi MVP Uwe Raabe 那里得到了答复,基本上说原因是 TDBGridColumns 的 VCL 流代码中存在问题,并建议我向 EMBA 的质量门户提交问题报告。所以我不认为在 EMBA 解决这个问题之前可以做很多事情。