我有一个自定义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的内容。
有人能说出我的问题所在吗?