2009-05-09 6 views
8

Unser Delphi 7-Entwicklungsteam speichert Formulardateien (dfm) im Textmodus und verwendet ein Quellcodeverwaltungssystem (Subversion), um Änderungen zu verfolgen.Löscht Delphi manchmal Textformdateien (DFM) in Binärformat?

Manchmal haben wir festgestellt, dass eine Formulardatei zwischen Revisionen in das Binärformat zurückkehrte, wodurch Diff-Tools wie TortoiseMerge sich beschweren.

Mit dem Subversion-Änderungsprotokoll kann ich sehen, dass die DFM-Datei zuvor in Textform gespeichert wurde. Die Softwareentwickler ändern das Speicherdateiformat niemals manuell in binär.

Haben Sie das gleiche gefunden? Ist es ein bekanntes Problem?

Antwort

4

Ich habe es in Delphi 7 passiert, wenn ein Formular, das von einem anderen Formular von einem anderen Projekt erbt, in Delphi eigenständig geöffnet wurde, ohne dass das Projekt geöffnet war.

2

Wenn jemand das Projekt mit einer anderen Version von Delphi geöffnet hat (oder die Standardeinstellungen geändert hat), kann er die Formulare in einem anderen Format speichern.

+0

Guter Hinweis, ich werde dies überprüfen. Wir haben auch Delphi 2007 und 2009 installiert. Die Standardeinstellungen gelten nur für neue Formulare. Daher bin ich mir nicht sicher, wie sie sich auf vorhandene Formulare auswirken können. – mjn

2

Nein, ich habe noch nie zuvor davon gehört (oder gehört). Wir haben Hunderte von .DFMs in ein paar Dutzend Apps, und das ist nur passiert, wenn ein Idiot versehentlich ein Rechtsklick auf ein Formular macht und 'Text DFM' im Kontextmenü deaktiviert.

+0

Vielleicht war es der berüchtigte "Rechtsklick und deaktivieren Sie den Text dfm" Virus? ;) – mjn

+0

Nein ... Unsere AV-Software hätte das erwischt. Es war ein Idiot.

+0

Ist es Delphi 7? – mjn

1

Wir haben das sicherlich schon erlebt. Wir verwenden ausschließlich D7.

Nie auf den Grund davon, wie es nur ein halbes Dutzend Mal pro Jahr oder so passiert, und obwohl es ein Ärgernis ist, ist es ziemlich leicht zu beheben.

Ich war interessiert, Lars 'Antwort zu sehen, und werde sicherlich schauen, ob das eine mögliche Ursache ist, wenn es das nächste Mal passiert.

1

Möglicherweise möchten Sie die Verwendung von Beyond Compare anstelle des integrierten Merge-Tools von TortoiseSVN untersuchen. Beyond Compare ist in Delphi geschrieben und kann nativ die binären DFMs lesen. Das bedeutet, dass es weniger problematisch (oder gar kein Problem) wird, ob Ihre DFMs in Subversion in Binär- oder Textform gespeichert sind. Beyond Compare V3 führt auch eine 3-Wege-Zusammenführung durch, wodurch es wirklich einfach ist, mehrere Commits usw. zu verschmelzen. Sogar die Fähigkeit, binäre DFMs zu differieren, ist ein viel besserer Diff-Viewer als die integrierten Tools von TortoiseSVN. Ich kann es sehr empfehlen, und es ist sehr günstig (ich habe keine Verbindung mit Scooter Software, abgesehen davon, dass ich ein sehr zufriedener Kunde bin).

Scooter Software

4

Dies geschieht manchmal, wenn die IDE verwechselt wird.

Es beginnt normalerweise, nachdem Sie eine Zugriffsverletzung innerhalb der Delphi 7 IDE erhalten haben.

Manchmal wird auch ein oder mehrere Ihrer Delphi-Editor-Puffer in der IDE schreibgeschützt (während die Dateien auf der Festplatte noch gelesen/geschrieben werden).

Das Verhalten tritt viel weniger als in Delphi 5 oder 6, aber manchmal kommt es vor in Delphi 7.

Das Beste, was Sie tun können, ist die Delphi 7 IDE neu starten, sobald Sie eine Zugriffsverletzung erhalten.

1

Wir haben auch dieses Problem von Zeit zu Zeit, und es scheint mit der Quelle des DFM (Alt-F12) zu sehen und dann eine Visual Source Safe-Operation (z. B. Check-in) zu tun.

11

Dies geschieht in Delphi 7, ist aber in späteren Versionen behoben. Normalerweise greifen Sie auf Formulare in der IDE zu, indem Sie die .pas-Datei öffnen und dann zur Formularansicht wechseln. Klicken Sie mit der rechten Maustaste auf Ihr Formular und es wird angezeigt, dass "Text DFM" aktiviert ist, wenn Sie dies zuvor getan haben.

Sie werden das beschriebene Problem eines DFM-Textaustauschs zu einem binären DFM feststellen, wenn Sie in der Delphi 7-IDE die .dfm-Datei direkt öffnen. z.B. Datei-> Öffnen-> Somefile.dfm .. Klicken Sie mit der rechten Maustaste auf die DFM und wählen Sie "Als Formular anzeigen". Klicken Sie nun mit der rechten Maustaste auf das Formular. Sie werden sehen, dass das "Text DFM" nicht markiert ist.

Wir bekamen das Problem, als wir einen DFM öffneten, der ein Grep-Suchergebnis war. Es hat uns auch verblüfft, und würde Korruption in der DFM in CVS verursachen, wie es als Text eingecheckt wurde.

+2

+1 für Rechtsklick auf Formular, wählen Sie Text DFM. –

Verwandte Themen