Директива $RangeChecks компілятора Delphi визначає, чи перевіряє Delphi межі масиву.
- {$RangeChecks Off}
- {$RangeChecks On}
Директива компілятора $RangeChecks визначає, чи повинен Delphi додати код для перевірки меж масиву.
За замовчуванням це значення вимкнено, тобто неправильний доступ до масиву залишиться непоміченим, виявляючи себе в частині коду, яку важко налагодити.
Рекомендовано увімкнути $RangeChecks, щоб виявити проблеми меж масиву. Це призведе до виключення, дозволяючи перевірити код і виправляти знайдені точки відмови.
Примітка.
$RangeChecks еквівалентна $R.
Вона може і повинна бути встановлена у вашому коді лише один раз.
Значення за замовчуванням – $RangeChecks Off.
Директива компілятора $RangeChecks: Захоплення проблем, пов'язаних з масивом
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
Директива компілятора $RangeChecks: Ігнорування проблем меж масиву
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
Подібні функції, процедури та команди
$R — визначає, чи перевіряє Delphi межі масиву.
$Resource — визначає файл ресурсу, який буде включено до програми.
