gpt4 book ai didi

delphi - TDataSource 后代作为子组件的无效属性路径错误

转载 作者:行者123 更新时间:2023-12-03 15:58:40 25 4
gpt4 key购买 nike

我正在尝试设计一组包含自己的数据库访问的数据控件。因此,我创建了一个 TDataSource 后代,它具有附加属性,可以将自身附加到数据库并创建数据集等...

如果我将其附加到 DBLookupComboBox 作为 ListSource,一切都很好。但是,如果我尝试创建此数据源作为 DBLookupComboBox 的子组件并将其指定为 ListSource,我会得到似乎 catch-22 的结果。 .

我希望 DataSource 的属性与 DBLookupComboBox 一起进行流式传输,并且我希望将 DBLookupComboBox 的 ListSource 设置为 DataSource 子组件,但我似乎无法同时执行这两个操作。当 DBLookupComboBox 进行流式传输时,DataSource 的附加属性将被包含两次,一次(正确地)在 DataSource 属性本身下,一次在 ListSource.Property1 下,最后一次将导致“无效的属性路径”> 当组件加载时,即使数据源是预先创建的(并注册等)。

如果 TDataSource 是子组件,只要它设置了一些非默认属性(即标签),就会发生同样的事情。

我尝试设计一个存储函数,允许 DataSource 属性进行流式传输,但不允许 ListSource 属性进行流式传输,但没有成功。

如果您能提供有关如何完成这项工作的任何帮助或指导,我将不胜感激。

DFM(片段)看起来像

object PmDCB1: TPmDCB
Left = 384
Top = 160
Width = 145
Height = 24
ListSource.Tag = 222
TabOrder = 0
ViewName = 'VAR'
WindowName = 'WNE'
View.Tag = 222
end

最佳答案

好的 - 最终找到了一个有效的答案 - 覆盖 DBLookupComboBox 的 WriteState 过程并将 ListSource 设置为 nil,然后调用继承,然后再次设置 ListSource。不太难看,这是我能找到的唯一能在一周的挖掘中起作用的东西。

关于delphi - TDataSource 后代作为子组件的无效属性路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com