Директивы Компилятора-Версии Delphi

у меня есть единица, которую я написал в Delphi 7 некоторое время назад, и только что получил удовольствие (боль) от преобразования в Delphi XE (Unicode).

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

У меня есть только Delphi 7 и Delphi XE, но из того, что я собираю код, написанный на Delphi 1 в Delphi 2007, будет компилироваться, но код из Delphi 2009 и выше будет Unicode.

...Во всяком случае, в блоке я разделяю не-unicode и unicode следующим образом:

{$IFDEF VER150} //Delphi 7
// code
{$ELSE IFDEF VER220} //Delphi XE
// code
{$ENDIF}

Как изменить директиву компилятора, чтобы правила применялись к нескольким версиям? Например что-то вроде:

{$IFDEF VER80,  //D1
        VER90,  //D2
        VER100, //D3
        VER120, //D4
        VER130, //D5
        VER140, //D6
        VER150, //D7}

это будет охватывать все версии Delphi, если я распространю источник или .блок УЗК.

спасибо.

2 ответов


интересно, Самый простой подход в этом случае-переключить поведение на UNICODE условное. Это условие определяется тогда и только тогда, когда вы используете версию Delphi в Юникоде, т. е. в Delphi 2009 и более поздних версиях. Большим преимуществом этого является то, что это будущее-вам не нужно обновлять код каждый раз, когда выходит новый Делфи. Более того, условный переключатель будет гораздо более читаемым, поскольку он будет четко выражать намерение.

Delphi документация имеет отличный темы список всех предопределенных условий. Полный список условий версии также связан оттуда.


лучше всего на самом деле посмотреть на один из многих проектов джедаев,http://sourceforge.net/projects/jedi-apilib/ например, и посмотрите, как они это делают. Они имеют общие включают файлы, которые содержат именно те детали, которые вас интересуют. JVCL-еще один хороший выбор ...