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

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

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

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


person Paul-Jan    schedule 27.01.2010    source источник


Ответы (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
person Warren P    schedule 27.01.2010
comment
Вы набираете waaay слишком быстро. ‹G› Я почти полностью опубликовал ту же информацию; Ты подтолкнул меня на это. - person Ken White; 28.01.2010

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

person Uli Gerhardt    schedule 28.01.2010
comment
Красиво - я не знал об этом. Спасибо. - person Warren P; 29.01.2010

Ну, для полноты:

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

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

person Marco van de Voort    schedule 27.01.2010