Как использовать разные пакеты в одном проекте для разных версий Delphi - PullRequest
4 голосов
/ 18 декабря 2009

Мы постепенно преобразовываем большую и сложную коллекцию проектов Delphi 6 в Delphi 2007.

В Delphi я могу использовать директивы компилятора в файлах dpr, dpk и pas, чтобы сделать разные коды видимыми для разных версий. Например:

requires
  rtl,
  vcl,
  vclx,
  {$IFDEF VER180} //Delphi 2007 and later
  IndyCore,
  IndySystem,
  IndyProtocols;
  {$ELSE} //earlier than Delphi 2007
  IndyCore60,
  IndySystem60,
  IndyProtocols60;
  {$ENDIF}

Однако я не знаю, как сделать то же самое в файле dof. Вышеуказанное условие require относится к пакету, который используется программой. Я хочу, чтобы эта программа имела разные настройки пакетов для разных версий Delphi. Поэтому я хочу поместить что-то вроде следующего в файл dof:

{$IFDEF VER180}
Packages=vcl;rtl;vclx;IndySystem;IndyCore;IndyProtocols;MyPackage;
{$ELSE}
Packages=vcl;rtl;vclx;IndySystem60;IndyCore60;IndyProtocols60;MyPackage;
{$ENDIF}

Я очень новичок в Delphi 2007, так что, надеюсь, я упускаю что-то действительно очевидное!

Любые предложения, полученные с благодарностью.

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

В Delphi 2007 вам больше не нужны файлы dof. Вся информация находится в файле dproj.

С версией 2009 вы можете создавать различные конфигурации сборки.

Но, насколько я понимаю, у вас есть кодовая база в Delphi 6 и вы хотите медленно преобразовать ее в 2007?

Сначала, почему не прямо в 2010? Вы получаете поддержку Unicode (это может быть причиной, чтобы не переходить на 2009/2010). В IDE 2010 отлично работать. Стабильный и некоторые новые функции. Если вам не нужен юникод, но в конце вы хотите получить 64-битную версию, вам нужно пройти фазу юникода в конце, так почему бы и нет.

Далее вы можете поделиться файлами устройства. Но создавайте разные проекты для каждой версии Delphi. Файлы проекта слишком специфичны для каждой версии.

0 голосов
/ 18 декабря 2009

D2007 не использует * .dof. Вместо этого параметры хранятся в YourProject.dproj. Так что не должно быть никакого конфликта.

...