2010-01-27 3 views
6

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

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

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

ответ

11

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

*.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 
+0

Вы вводите waaay слишком быстро. Я был почти полностью через публикацию той же информации; Ты подтолкнул меня на это. –

3

Ну, для полноты картины:

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

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

+0

+1 ради полноты :-) –

4

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

+0

Ницца - я не знал об этом. Благодарю. –

Смежные вопросы