Мы недавно преобразовали наш продолжительный проект Delphi в Открытый исходный код. Несколько человек уже внесли патчи, который является большим, но к сожалению формирует и структурирует при сохранении с Delphi 2006 (и позже) содержит новые свойства в .dfm, которые не обрабатываются более старыми версиями. Формы обрабатываются вполне корректно IDE ("игнорируют propery?"), но кадры загружаются во времени выполнения и результате по ошибкам. Не опция, что касается меня.
Я теперь удалил те свойства из .dmf файлов вручную, но я действительно задаюсь вопросом, существует ли более изящное решение. Нет никакого способа сохранить в назад совместимом формате от нового IDE, есть ли? Там существующие инструменты должны разделить неподдерживаемые свойства от .dfm's? Какое-либо другое изящное решение я отсутствую?
Обычно, с коммерческим проектом, я просто обновил бы проект до новой версии, применимой..., но поскольку это - открытый исходный код, который я действительно не хочу освобождать на тех разработчиках, все еще работающих над Delphi 7. Это включает меня на самом деле.
Проект проект JEDI JVCL использует небольшую утилиту dc.exe (очиститель Delphi) и список свойств в DFMS, которые нет в более старых версиях Delphi, мой содержит следующий текст:
*.PopupMode
*.PopupParent
*.ExplicitLeft
*.ExplicitTop
*.ExplicitWidth
*.ExplicitHeight
*.BevelKind
*.BufferDocument
*.DoubleBuffered
*.ParentDoubleBuffered
*.DisableHyperlinks
*.AlwaysEnquoteFloats
*.PixelsPerInch
Я запускаю эту утилиту dc.exe из пакетного файла, который очищает мой DFM, прежде чем я совершаю изменения в подрывной деятельности. Синтаксис в моем пакетном файле для этого:
dc.exe -s -fd10.txt *.dfm -i
Вы можете схватить мои вещи на:
http://sites.google.com/site/warrenpostma/files
Ну ради полноты:
Откройте DFMS в самых старейших Delphi поддерживаются, пусть он удалит все неизвестные свойства, измените свойство и сохранить.
Для ваших целей решение Уоррена лучше, но это может быть обходным путем. Я сделал это некоторое время, когда мы были двойными D7-D2006ing.
Вы можете попробовать DFMCheck Энди. Он может автоматически открывать и закрывать все формы и фреймы в проекте, что заставляет среду IDE удалять неизвестные свойства (как писал Марко ).