Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



$B

Определяет, нужно ли сокращать операции "и" и "или"

  1. {$B-}
  2. {$B+}

Описание:

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

     {$B-} (по умолчанию) означает не продолжать, {$B+} означает продолжать проверку.

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

     expr1 and expr2

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

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

Пример кода:

var
   FullString, EmptyString : string;

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

   // Set full checking OFF
   {$B-}

   // Check the 4th character of each string
   if (Length(FullString) >= 4) and (FullString[4] = 'd')
   then ShowMessage('FullString 4th character is d')
   else ShowMessage('FullString 4th character is NOT d');

   if (Length(EmptyString) >= 4) and (EmptyString[4] = 'd')
   then ShowMessage('EmptyString 4th character is d')
   else ShowMessage('EmptyString 4th character is NOT d');

   // Set full checking ON
   {$B+}

   // Check the 4th character of each string
   if (Length(FullString) >= 4) and (FullString[4] = 'd')
   then ShowMessage('FullString 4th character is d')
   else ShowMessage('FullString 4th character is NOT d');

   // Now we must protect the code from errors
   try
      if (Length(EmptyString) >= 4) and (EmptyString[4] = 'd')
      then ShowMessage('EmptyString 4th character is d')
      else ShowMessage('EmptyString 4th character is NOT d');
   except
      on E : EAccessViolation do
      ShowMessage(E.Message);
   end;

end;

Результат выполнения:

The following is typical of the output from the above code:

FullString 4th character is d
EmptyString 4th character is NOT d
FullString 4th character is d

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