Справочник функций и процедур Delphi: $BoolEval

  Навигация по первой букве:

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

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

$BoolEval
Деректива компилятора
Сокращаются ли вычисления при операциях or или and unit
  
1 {$BoolEval Off}

2 {$BoolEval On}

Delphi Sources

Описание
Директива компилятора $BoolEval говорит Delphi, продолжить ли вычисление многоаргументного булева выражения или нет, когда результат заранее известен.

{$BoolEval Off} (значение по умолчанию) означает не продолжать
{$BoolEval On} означает продолжать проверку

Например, по умолчанию, с выражением:

expr1 and expr2

expr2 не будет вычисляться, если expr1 является ложным. С {$BoolEval On}, проверка продолжилась бы.

Пример иллюстрирует нормальное использование значения по умолчанию.
Примечания
$BoolEval эквивалентна $B.

Эта директива может использоваться в пределах вашего кода множество раз.

$BoolEval Off является значением по умолчанию
Похожие команды
$B  Сокращаются ли вычисления при операциях or или and

And  Булев and или поразрядный and двух аргументов

If  Начинает условное выражение, чтобы решить, что делать далее

Or  Булевская or или поразрядная or двух аргументов

 
Пример кода : Проверка содержания строки
var
  FullString, EmptyString : string;

begin
  FullString  := 'Fred';
  EmptyString := '';

  // Выключение полной проверки
  {$BoolEval Off}

  // Проверка 4-го символа каждой строки
  if (Length(FullString) >= 4) and (FullString[4] = 'd')
  then ShowMessage('4-ый символ FullString - d')
  else ShowMessage('4-ый символ FullString НЕ d');

  if (Length(EmptyString) >= 4) and (EmptyString[4] = 'd')
  then ShowMessage('4-ый символ EmptyString - d')
  else ShowMessage('4-ый символ EmptyString НЕ d');

  // Включение полной проверки
  {$BoolEval On}

  // Проверка 4-го символа каждой строки
  if (Length(FullString) >= 4) and (FullString[4] = 'd')
  then ShowMessage('4-ый символ FullString - d')
  else ShowMessage('4-ый символ FullString НЕ d');

  // Теперь мы должны защитить код от ошибок
  try
    if (Length(EmptyString) >= 4) and (EmptyString[4] = 'd')
    then ShowMessage('4-ый символ EmptyString - d')
    else ShowMessage('4-ый символ EmptyString НЕ d');
  except
    on E : EAccessViolation do
    ShowMessage(E.Message);
  end;

end;

Следующее типично для вывода вышеупомянутого кода:

4-ый символ FullString - d
4-ый символ EmptyString НЕ d
4-ый символ FullString - d

Access violation at address 00442196 in module 'PROJECT1.EXE'.
Read of address FFFFFFFF
 


Последние добавленные на сайт исходники

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

Айболит (remote control)

 

ListBox Drag & Drop

Доска для игры Реверси

Графические эффекты

Рисование по маске

Перетаскивание изображений

Canvas Drawing

 

Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software (источник – "DelphiBasics")

Группа ВКонтакте