2010-01-06 4 views
3

У меня есть пользовательский потомок TListView, который я изначально создал в D2007, и теперь использую его в D2010. Контроль работал отлично в D2007 без проблем, но в D2010 я испытываю спорадические, но частые случаи, в которых DFM не могут быть загружены с помощью исполняемого файла и сгенерирует EReadError с сообщением:Sporadic DFM коррупция TListView.Items.ItemData

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

где «lvPremiums» является Имя элемента управления потоком TListView. Это происходит при компиляции в среде разработки. Я не редактировал никаких свойств элемента управления, но обычно я выполнил команду «Сохранить все» в меню. Мой потоковый потоковый список не устанавливает никаких элементов по умолчанию, они создаются во время выполнения.

Я могу исправить проблему, открыв свойство Items у инспектора объектов, а затем немедленно нажмите OK и сохраните форму еще раз.

Визуальный осмотр файла DFM для формы, которая была коррумпированной таким образом показывает объявление свойства в lvPremium компонента:

Items.ItemData = {} 

Эта линия не присутствует, когда форма была «исправлена» и является управляемым состоянием.

Проверка исходного кода для моего потомка TListView, он не содержит имя «ItemData», и я не могу найти это, зарегистрированное на экране справки TListItems.

Нужно исправить эту постороннюю вставку в DFM, так как я часто использую этот компонент, иногда много раз в одной форме.

Может ли кто-нибудь предложить, где моя проблема?

ответ

4

Об этом сообщили в Центральном качества: QC78778

Ther также formum нить об этом here. Возможно, вы найдете обходное решение.

+1

Thx. Этот поток содержит работу - добавление «фиктивного» элемента в каждый элемент управления списком, а затем удаление его при запуске. –

+0

Запись QC была отмечена как разрешенная окончательно в XE2 – mjn

0

Использование CG2009, эта проблема возникла для меня после того, как я установил Properties -> ReadOnly и открыл редактор Properties -> Items и оставил ее пустой. Он ушел после того, как я добавил предмет и перестроил его, затем удалил предмет и снова перестроил его.