Как сохранить формы и фреймы в Delphi 6 - 2007?

Недавно мы преобразовали наш долгосрочный проект Delphi в Open Source. Несколько человек уже внесли исправления, и это здорово, но, к сожалению, формы и фреймы при сохранении в Delphi 2006 (и более поздних версиях) содержат новые свойства в формате.dfm, которые не обрабатываются более старыми версиями. Формы обрабатываются в IDE довольно изящно ("ignore Propery?"), Но кадры загружаются во время выполнения и приводят к ошибкам. На мой взгляд, не вариант.

Теперь я удалил эти свойства из файлов.dmf вручную, но мне действительно интересно, есть ли более элегантное решение. Там нет никакого способа сохранить в обратно совместимом формате из новых IDE, не так ли? Существуют ли инструменты для удаления неподдерживаемых свойств из файлов.dfm? Любое другое элегантное решение, которое мне не хватает?

Обычно, с коммерческим проектом, я просто обновляю проект до последней применимой версии... но так как это открытый исходный код, я действительно не хочу терять внимание на тех разработчиках, которые все еще работают над Delphi 7. Это включает и меня, на самом деле.

3 ответа

Решение

В проекте JEDI JVCL используется небольшая утилита dc.exe (очиститель delphi) и список свойств в DFM, которых нет в более старых версиях delphi. В моем файле содержится следующий текст:

*.PopupMode
*.PopupParent
*.ExplicitLeft
*.ExplicitTop
*.ExplicitWidth
*.ExplicitHeight
*.BevelKind
*.BufferDocument
*.DoubleBuffered
*.ParentDoubleBuffered
*.DisableHyperlinks
*.AlwaysEnquoteFloats
*.PixelsPerInch

Я запускаю эту утилиту dc.exe из командного файла, который очищает мои dfms перед тем, как вносить изменения в subversion. Синтаксис в моем командном файле для этого:

dc.exe -s -fd10.txt *.dfm -i

Вы можете взять мои вещи по адресу:

http://sites.google.com/site/warrenpostma/files

Вы можете попробовать Энди DFMCheck. Он может автоматически открывать и закрывать все формы и фреймы в проекте, что заставляет IDE удалять неизвестные свойства (как писал Марко).

Ну ради полноты

Откройте dfms в самой старой из поддерживаемых Delphi, разрешите ей удалить все неизвестные свойства, измените свойство и сохраните.

Для ваших целей решение Уоррена лучше, но это может быть обходной путь. Я делал это какое-то время, когда у нас был двойной D7-D2006ing.

Другие вопросы по тегам