2009-05-09 22 views
8

Notre équipe de développement Delphi 7 stocke les fichiers de formulaire (dfm) en mode texte et utilise un système de contrôle de source (Subversion) pour suivre les modifications.Est-ce que Delphi convertit parfois les fichiers de formulaire texte (DFM) au format binaire?

Parfois, nous avons remarqué qu'un fichier de formulaire retourné au format binaire entre les révisions, provoquant des outils de diff comme TortoiseMerge à se plaindre. En utilisant le journal des modifications Subversion, je peux voir que le fichier DFM a été stocké sous forme de texte avant. Les développeurs de logiciels ne modifient jamais le format de fichier de stockage en binaire manuellement.

Avez-vous découvert le même produit? Est-ce un problème connu?

Répondre

4

J'ai vu cela arriver dans Delphi 7 quand un formulaire héritant d'un autre formulaire d'un projet différent a été ouvert dans Delphi seul sans que le projet auquel il appartient soit ouvert.

2

Si quelqu'un a ouvert le projet avec une version différente de Delphi (ou modifié les paramètres par défaut), il peut enregistrer les formulaires dans un format différent.

+0

Bon indice, je vais vérifier cela. Nous avons également installé Delphi 2007 et 2009. Les paramètres par défaut sont uniquement pour les nouveaux formulaires, je ne sais pas comment ils peuvent affecter les formulaires existants. – mjn

2

Non, je n'ai jamais vu (ou entendu parler) que cela se produisait avant. Nous avons des centaines de. DFM dans une douzaine d'applications, et cela n'est arrivé que lorsqu'un idiot clique accidentellement sur un formulaire et décoche 'Text DFM' dans le menu contextuel.

+0

Peut-être que c'était le tristement célèbre «clic droit et décochez le texte dfm 'virus? ;) – mjn

+0

Nah ... Notre logiciel AV aurait attrapé ça. C'était un idiot.

+0

Est-ce Delphi 7? – mjn

1

Nous avons certainement rencontré cela. Nous utilisons D7 exclusivement. On ne va jamais au fond des choses, car cela n'arrive qu'une demi-douzaine de fois par an, et bien que ce soit une nuisance, il est assez facile de remédier à la situation.

J'ai été intéressé de voir la réponse de Lars, et je vais certainement voir si c'est une cause possible la prochaine fois que cela arrive.

1

Vous pourriez être intéressé par l'utilisation de Beyond Compare au lieu de l'outil de fusion intégré de TortoiseSVN. Beyond Compare est écrit en Delphi et sait nativement lire les DFM binaires. Cela signifie qu'il devient alors moins un problème (ou même aucun problème) si vos DFM sont stockés dans Subversion en binaire ou en texte. Beyond Compare V3 fait également une fusion à trois voies, ce qui facilite grandement la fusion de plusieurs validations, etc. Même en ignorant la possibilité de différer les DFM binaires, c'est encore un meilleur visualiseur de différences que les outils intégrés de TortoiseSVN. Je peux le recommander fortement, et c'est très peu coûteux (je n'ai aucun lien avec Scooter Software, autre que d'être un client très heureux).

Scooter Software

4

Cela arrive parfois lorsque l'IDE devient confus.

Cela commence généralement après une violation d'accès dans l'environnement de développement intégré Delphi 7. Parfois aussi un ou plusieurs de vos tampons d'éditeur Delphi dans l'EDI deviennent en lecture seule (alors que les fichiers sur le disque sont encore en lecture/écriture).

Le comportement se produit beaucoup moins que dans Delphi 5 ou 6, mais parfois il ne se produit en Delphi 7.

La meilleure chose que vous pouvez faire est de redémarrer l'IDE Delphi 7 dès que vous obtenez une violation d'accès.

1

Nous avons également ce problème de temps en temps, et il semble être lié à la source du DFM (Alt-F12), puis à une opération Visual Source Safe (par exemple, l'enregistrement).

11

Cela se produit dans Delphi 7 mais est corrigé dans les versions ultérieures. Habituellement, vous accédez aux formulaires dans l'EDI en ouvrant le fichier .pas, puis en passant en mode Formulaire. Faites un clic droit sur votre formulaire et il montrera que c'est "Texte DFM" coché si vous l'avez déjà fait.

Vous rencontrerez le problème que vous avez décrit d'un texte DFM basculant vers un DFM binaire lorsque dans l'IDE Delphi 7 vous ouvrez le fichier .dfm directement. par exemple. Fichier-> Ouvrir-> Somefile.dfm .. Cliquez avec le bouton droit sur le fichier dfm et choisissez "Afficher comme formulaire". Maintenant faites un clic droit sur le formulaire, vous verrez que le "Text DFM" est décoché.

Nous avions le problème lorsque nous avons ouvert un DFM qui était un résultat de recherche grep. Il nous avait aussi perplexe, et causerait la corruption de la dfm dans cvs comme il a été archivé sous forme de texte.

+2

+1 pour un clic droit sur le formulaire, sélectionnez Texte DFM. –