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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия