У меня есть пользовательский потомок 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, так как я часто использую этот компонент, иногда много раз в одной форме.
Может ли кто-нибудь предложить, где моя проблема?
Thx. Этот поток содержит работу - добавление «фиктивного» элемента в каждый элемент управления списком, а затем удаление его при запуске. –
Запись QC была отмечена как разрешенная окончательно в XE2 – mjn