Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  
Подписаться на рассылку:
Клуб программистов


Основы Delphi
$RangeChecks
Деректива компилятора
Определяет, проверяет ли Delphi границы массива unit
  
1 {$RangeChecks Off}

2 {$RangeChecks On}
Описание
Директива компилятора $RangeChecks определяет, должен ли Delphi добавить код, для проверки границ массива.

По умолчанию она выключена, означая, что "плохой" доступ к массиву пройдёт незамеченным, показав себя в трудном для отладки части кода.

Рекомендуется включить $RangeChecks, чтобы обнаружить проблемы границ массива. Это приведет к вызову исключения, позволяя проверить код и исправлять найденные точки отказа.
Примечания
$RangeChecks эквивалентна $R.

Она может и должен быть установлена в вашем коде только один раз.

Значение по умолчанию - $RangeChecks Off.
Похожие команды
$R  Определяет, проверяет ли Delphi границы массива

$Resource  Определяет файл ресурса, который будет включен в приложение

 
Пример кода : Захват проблем звязанных с массивом.
var
  myArray : array[1..5] of string;
  i : Integer;

begin
  // Проверка диапазона включена
  {$RangeChecksOn}

  // Массив начинается с 0 - обычно нормально, но наш
  // массив начинается с 1.
  for i := 0 to 5 do
  begin
    myArray[i] := 'Element '+IntToStr(i);
    ShowMessage('myArray['+IntToStr(i)+'] = '+myArray[i]);
  end;
end;
Delphi выдаст исключение ERangeError
 
Пример кода : Игнорирование проблем границ массива
var
  myArray : array[1..5] of string;
  i : Integer;

begin
  // Проверка диапазона выключена
  {$RangeChecksOff}

  // Массив начинается с 0 - обычно нормально, но наш
  // массив начинается с 1.
  for i := 0 to 5 do
  begin
    myArray[i] := 'Element '+IntToStr(i);
    ShowMessage('myArray['+IntToStr(i)+'] = '+myArray[i]);
  end;
end;
myArray[0] = Element 0
myArray[1] = Element 1
myArray[2] = Element 2
myArray[3] = Element 3
myArray[4] = Element 4
myArray[5] = Element 5
 



© Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки  |     |  Английская версия