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
$OverFlowChecks
Деректива компилятора
Определяет, проверяет ли Delphi целочисленные и перечислимые границы unit
  
1 {$OverFlowChecks Off}

2 {$OverFlowChecks On}
Описание
Директива компилятора $OverFlowChecks определяет, должен ли Delphi добавлять код, чтобы проверить переполнение значения целочисленных и перечислимых операций.

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

Рекомендуют включить $OverFlowChecks, чтобы обнаружить переполнение прежде, чем они вызовут проблемы. Это приведет к подъему исключений, позволяя корректировать код, находя точки отказа.
Примечания
$OverFlowChecks эквивалентна $Q.

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

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

 
Пример кода : Перехват переполненых значений
var
  myNumber : Byte;

begin
  // Проверка переполнения включена
  {$OverFlowChecks On}
  // Байт может содержать числа до 255
  myNumber := 255;
  ShowMessage('myNumber = '+IntToStr(myNumber));

  // Превышение 255 выдаст исключение
  Inc(myNumber);
  ShowMessage('myNumber = '+IntToStr(myNumber));
end;
myNumber = 255

Delphi выдаст исключение EIntOverflow
 
Пример кода : Игнорирование переполненых значений
var
  myNumber : Byte;

begin
  // Выключение проверок переполнения
  {$OverFlowChecks Off}
  // Байт может содержать числа до 255
  myNumber := 255;
  ShowMessage('myNumber = '+IntToStr(myNumber));

  // Превышение 255 сбросит значение до 0
  Inc(myNumber);
  ShowMessage('myNumber = '+IntToStr(myNumber));
end;
myNumber = 255
myNumber = 0
 



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