Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не компилиццо директива


Автор: Gershkovich 19.10.2009, 15:29
Всем привет!

Использую в свое проге ThtmlViewer 9.47

При сборке проекта  вот на этом месте
Код

{$IF compilerversion >= 19}
...
{$IFEND}


выпадает ошибка [Error] htmlcons.inc(96): Constant expression expected

Код не мой, а авторов ThtmlViewer. Это и настораживает - ведь у них компилилось!
Разве в директивах нельзя использовать сравнения?
В чом тут не так ?

ЗЫ юзаю Delphi 7

Заранее спасибо

Автор: Alexeis 19.10.2009, 15:42
Проверил код 
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
{$if CompilerVersion > 18} ShowMessage(FloatToStr(CompilerVersion));{$ifend}
end;

У меня выдало 18,5 . 
константа CompilerVersion введена начиная с Delphi 6.

Добавлено через 14 минут и 52 секунды
  Также из модуля System.pas
Цитата

{$EXTERNALSYM CompilerVersion}

(*
const
  CompilerVersion = 0.0;

  CompilerVersion is assigned a value by the compiler when
  the system unit is compiled.  It indicates the revision level of the
  compiler features / language syntax, which may advance independently of
  the RTLVersion.  CompilerVersion can be tested in $IF expressions and
  should be used instead of testing for the VERxxx conditional define.
  Always test for greater than or less than a known revision level.
  It's a bad idea to test for a specific revision level.
*)

Автор: Gershkovich 19.10.2009, 16:15
Alexeis, этот код у меня тож работает если его прописать в .pas
А если в .inc то почему то не работает... :(

Автор: Alexeis 19.10.2009, 17:19
файл сам по себе не компилируется, он компилируется совместно с pas файлом. Возможно проблема в том что он вставляется неудачное место?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)