2010-01-06 6 views
3

J'ai un descendant TListView personnalisé que j'ai créé à l'origine dans D2007 et je l'utilise maintenant dans D2010. Le contrôle a bien fonctionné dans D2007 sans problème, mais dans D2010 je rencontre des cas sporadiques mais fréquents dans lesquels le DFM ne peut pas être chargé par l'exécutable et jette un EReadError avec le message:Corruption DFM sporadique de TListView.Items.ItemData

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

où « lvPremiums » est le nom de mon contrôle descendant TListView. Cela se produit lorsque je compile dans l'environnement de développement. Je n'ai édité aucune propriété du contrôle mais généralement j'ai exécuté tout sauver du menu. Mon descendant de la vue liste n'établit aucun élément par défaut, ils sont créés au moment de l'exécution.

Je peux résoudre le problème en ouvrant la propriété Items de l'inspecteur d'objets, puis cliquez immédiatement sur OK et enregistrez à nouveau le formulaire.

inspection visuelle du fichier DFM pour une forme qui a été corrompu de cette manière montre la déclaration de propriété dans le composant lvPremium de:

Items.ItemData = {} 

Cette ligne est pas présent lorsque la forme a été « corrigée » et est un état exécutable.

En vérifiant le code source de mon descendant TListView, celui-ci ne contient pas le nom «ItemData», et je ne le trouve pas non plus dans l'écran d'aide de TListItems. Avoir à corriger cette insertion étrangère dans le DFM devient un alésage puisque j'utilise ce composant fréquemment, parfois plusieurs fois sur une seule forme.

Quelqu'un peut-il suggérer où se situe mon problème?

Répondre

4

Cela a été rapporté dans le centre Qualité: QC78778

Ther est également un fil de Fonnum à ce sujet here. Peut-être que vous pouvez trouver une solution de contournement.

+1

Thx. Ce thread contient un travail - en ajoutant un élément "factice" à chaque contrôle de liste, puis en le supprimant au démarrage. –

+0

L'entrée CQ a été marquée comme résolue dans XE2 – mjn

0

En utilisant CG2009, ce problème s'est produit pour moi après avoir défini Propriétés -> ReadOnly et ouvert l'éditeur Propriétés -> Éléments et laissé vide. Il est parti après avoir ajouté un objet et reconstruit, puis retiré l'objet et reconstruit à nouveau.