2016-05-30 122 views
0

我在Delphi 10 Seattle中创建了一个组件。 我的组件是一个面板包含一个TDBGrid(来自TCustomDBGrid)和一个TEdit 控件。 当我把我的组件形成时,一切都很好,如果我不改变网格列。 但当我更改有界的DBGrid列,运行时发生错误消息:“Error reading TColumn.MyGrid.Expanded:Property MyGrid.Expanded dos does not exist ...” 对于发现的错误,我打开窗体为文本和看到这段代码:将DBGrid绑定到自定义组件

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 

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

+0

那么,您的TMyGrid是否声明了Expanded属性,并且它在表单上使用时是否正确流式传输?同样的问题你的FieldName - TCustomDBGrid没有FieldName属性上次我看... – MartynA

+0

我的数据集是一个表,有一些字段。我需要在网格中设置2个字段,因此,在Columns属性(MyGrid中)中,我添加了这些字段。 –

+0

那么,你可能认为你已经做了正确的事情,但显然德尔福认为是不同的。你应该听听错误信息试图告诉你什么,特别是“Property MyGrid.Expanded do [e] s exists”。 “我的数据集是一个有一些领域的桌子。” - 但是您的自定义网格是否知道它所连接的数据集只能是这种类型的? – MartynA

回答

0

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

所以,我在这里

How to correctly stream a TCollection property of a subcomponent, e.g. the Columns property of an embedded TDBGrid

贴出我自己的q和获得德尔福MVP乌韦·拉贝的答案基本上说,原因是TDBGridColumns的VCL流代码中的问题,并暗示我的文件EMBA质量门户的问题报告。所以在EMBA解决之前,我认为没有什么可以解决的问题。

相关问题