我有一個自定義的TListView後裔,我最初在D2007中創建,現在在D2010中使用。控制在D2007工作正常沒有問題,但在D2010我遇到其中DFM不能由可執行被加載並引發EReadError有消息零星,但頻繁發生的情形:TListView.Items.ItemData零星的DFM損壞
'Error reading lvPremiums.Items.ItemData: Stream read error'
其中「lvPremiums」是我的TListView後代控件的名稱。當我在開發環境中編譯時會發生這種情況。我沒有編輯控件的任何屬性,但通常我已經從菜單中執行了Save All。我的列表視圖後裔默認情況下不會建立任何項目,它們是在運行時創建的。
我可以通過從對象檢查器打開Items屬性來解決問題,然後立即單擊確定並再次保存表單。
對於已經以這種方式被破壞的形式來DFM文件的視覺檢查顯示的lvPremium組件內屬性的聲明:
Items.ItemData = {}
該行不存在時的形式已被「校正」和是一個可運行的狀態。
檢查我的TListView後裔的源代碼,它不包含名稱「的ItemData」,也可以找到這在TListItems幫助屏幕記錄。
有糾正外來插入DFM正在成爲一個孔,因爲我使用這個組件頻繁,有時多次在單一表單上。
任何人都可以提出我的問題在哪裏?
Thx。該線程包含解決方法 - 爲每個列表視圖控件添加一個「虛擬」項,然後在啓動時將其刪除。 –
QC條目已被標記爲最終在XE2中解析 – mjn