Отключите проверку диапазона Delphi только для небольшой части кода - PullRequest
13 голосов
/ 15 февраля 2011

Как можно отключить проверку диапазона для части файла. Выключить легко, но как мне позже вернуться к настройкам проекта? Псевдокод ниже должен объяснить это:

Unit1;

//here's range checking on or off as per the project setting

code here...

{$R-}

//range checking is off here because the code causes range check errors

code here...

//now I want to revert to the project setting. How do I do that?

code here...

end.

Ответы [ 2 ]

40 голосов
/ 15 февраля 2011

См .: Директива IFOPT .

{$IFOPT R+}
  {$DEFINE RANGEON}
  {$R-}
{$ELSE}
  {$UNDEF RANGEON}
{$ENDIF}
//range checking is off here because the code causes range check errors
//code here...
{$IFDEF RANGEON}
  {$R+}
  {$UNDEF RANGEON}
{$ENDIF}
4 голосов
/ 15 февраля 2011

Оберните ваш код в директивах $R:

{$R-} // disable range checking
// do non-range-checked operations here
{$R+} // turn range checking back on

Обратите внимание, что директива применяется на уровне оператор . Вы не можете обернуть это только частью выражения.

...