【问题标题】:Sporadic DFM corruption of TListView.Items.ItemDataTListView.Items.ItemData 的零星 DFM 损坏
【发布时间】:2010-01-06 19:42:03
【问题描述】:

我有一个自定义的 TListView 后代,它最初是在 D2007 中创建的,现在正在 D2010 中使用。该控件在 D2007 中运行良好,没有问题,但在 D2010 中,我遇到了零星但频繁的情况,其中 DFM 无法由可执行文件加载并引发 EReadError 消息:

'Error reading lvPremiums.Items.ItemData: Stream read error'

其中“lvPremiums”是我的 TListView 后代控件的名称。当我在开发环境中编译时会发生这种情况。我没有编辑控件的任何属性,但通常我已经从菜单中执行了 Save All。我的列表视图后代默认情况下不建立任何项目,它们是在运行时创建的。

我可以通过从对象检查器中打开 Items 属性来解决问题,然后立即单击“确定”并再次保存表单。

以这种方式损坏的表单的 DFM 文件的目视检查显示了以下 lvPremium 组件中的属性声明:

Items.ItemData = {}

当表单已“更正”并且处于可运行状态时,此行不存在。

检查我的 TListView 后代的源代码,它不包含名称“ItemData”,我也无法在 TListItems 帮助屏幕中找到此文档。

由于我经常使用这个组件,有时在一个表单上使用很多次,因此必须纠正插入 DFM 的多余内容。

谁能建议我的问题出在哪里?

【问题讨论】:

    标签: delphi delphi-2010


    【解决方案1】:

    这已在 Quality Central 中报告:QC78778

    还有一个关于它的论坛主题here。也许您可以找到解决方法。

    【讨论】:

    • 谢谢。该线程包含一个变通方法——向每个列表视图控件添加一个“虚拟”项,然后在启动时将其删除。
    • QC条目在XE2中已被标记为最终解决
    【解决方案2】:

    使用 CG2009,在我设置 Properties -> ReadOnly 并打开 Properties -> Items 编辑器并将其留空后,我出现了这个问题。在我添加一个项目并重建后它就消失了,然后删除了该项目并再次重建。

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 2011-12-15
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 1970-01-01
      相关资源
      最近更新 更多