Делает ли Delphi иногда файлы текстовой формы (DFM) в двоичный формат? - PullRequest
8 голосов
/ 09 мая 2009

Наша команда разработчиков Delphi 7 хранит файлы форм (dfm) в текстовом режиме и использует систему контроля версий (Subversion) для отслеживания изменений.

Иногда мы замечали, что файл формы возвращался в двоичном формате между ревизиями, из-за чего различные инструменты, такие как TortoiseMerge, жаловались.

Используя журнал изменений Subversion, я вижу, что файл DFM ранее хранился в текстовом виде. Разработчики программного обеспечения никогда не изменяют формат файла хранения обратно на двоичный файл вручную.

Сталкивались ли вы с тем же? Это известная проблема?

Ответы [ 7 ]

11 голосов
/ 20 октября 2010

Это происходит в Delphi 7, но исправлено в более поздних версиях. Обычно вы обращаетесь к формам в IDE, открывая файл .pas, а затем переключаясь в представление формы. Щелкните правой кнопкой мыши по форме, и она покажет, что она помечена как «Text DFM», если вы сделали это раньше.

Вы столкнетесь с проблемой, которую описали при переключении текстовой DFM на двоичную DFM, когда в Delphi 7 IDE вы откроете файл .dfm напрямую. например. Файл-> Открыть-> Somefile.dfm. Щелкните правой кнопкой мыши на dfm и выберите «Просмотреть как форму». Теперь щелкните правой кнопкой мыши на форме, и вы увидите, что «Текст DFM» не отмечен.

У нас возникла проблема, когда мы открыли DFM, который был результатом поиска grep. Это также привело нас в замешательство и могло привести к повреждению dfm в cvs, так как оно было отмечено как текст.

4 голосов
/ 11 мая 2009

Это иногда случается, когда IDE запутывается.

Обычно начинается после того, как вы получили нарушение прав доступа в Delphi 7. IDE.

Иногда один или более из ваших буферов редактора Delphi внутри IDE становятся доступными только для чтения (в то время как файлы на диске все еще читаются / записываются).

Поведение происходит гораздо реже, чем в Delphi 5 или 6, но иногда это происходит в Delphi 7.

Лучшее, что вы можете сделать, - это перезапустить Delphi 7 IDE, как только вы получите нарушение доступа.

4 голосов
/ 09 мая 2009

Я видел, как это происходило в Delphi 7, когда форма, унаследованная от другой формы из другого проекта, была открыта в Delphi сама по себе без проекта, которому она принадлежит.

2 голосов
/ 09 мая 2009

Если кто-то открыл проект с другой версией Delphi (или изменил настройки по умолчанию), он может сохранить формы в другом формате.

1 голос
/ 17 мая 2009

Время от времени у нас также возникает эта проблема, и, похоже, она связана с просмотром источника DFM (Alt-F12) и выполнением операции Visual Source Safe (например, регистрация).

1 голос
/ 11 мая 2009

Вас может заинтересовать использование Beyond Compare вместо встроенного инструмента слияния TortoiseSVN. Beyond Compare написан на Delphi и знает, как читать двоичные DFM. Это означает, что тогда становится меньше проблем (или даже не возникает проблем), хранятся ли ваши DFM в Subversion в двоичном или текстовом формате. В Beyond Compare V3 также выполняется трехстороннее объединение, которое позволяет действительно легко объединять несколько коммитов и т. Д. Даже если игнорировать возможность сравнения двоичных DFM, это все же намного лучший просмотрщик различий, чем встроенные инструменты TortoiseSVN. Я очень рекомендую это, и это очень недорого (я не имею никакого отношения к Scooter Software, кроме как очень счастливый клиент).

Программное обеспечение Scooter

1 голос
/ 10 мая 2009

Мы, конечно, сталкивались с этим. Мы используем исключительно D7.

Никогда не доходил до сути, так как это происходит всего полдюжины раз в год или около того, и хотя это неприятно, его довольно легко исправить.

Мне было интересно посмотреть ответ Ларса, и я непременно посмотрю, возможно ли это в следующий раз, когда это произойдет.

...