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

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

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

  Реклама:

 

$ExtendedSyntax
Деректива компилятора
Контроль обработки некоторых расширений Паскаля unit
  
1 {$ExtendedSyntax Off}

2 {$ExtendedSyntax On}

Google  
 
Описание
Директива компилятора $ExtendedSyntax определяет, включает ли Delphi множество расширений языка Паскаля или нет.

Это затрагивает три области:

1. Обработка функций как процедуры
Код примера показывает эффект до и после применения $ExtendedSyntax. Когда On, Delphi позволяет игнорировать результаты функции, таким образом отменяя обработку результатов функций, как будто это была процедура.

2. Использование результатов функций
С $ExtendedSyntax Off, вы должны возвратить значение функции, присвоив его псевдопеременной с тем же самым именем, что и функция. Например: function GetValue : Integer; begin GetValue := 23; end; С $ExtendedSyntax On, вы можете присвоить псевдопеременной Result, как в коде примера.

3. Обработка массива Char как строки
С $ExtendedSyntax On, обнулённому массиву Char переменных может быть присвоено значение строки. Также может быть назначено, пока массив имеет элемент со значением #0, чтобы показать конец строки.
Примечания
$ExtendedSyntax эквивалентна $X.

$ExtendedSyntaxOn является значением по умолчанию

$ExtendedSyntax должен быть установлен в вашем коде только однажды.
Похожие команды
$BoolEval  Сокращаются ли вычисления при операциях or или and

$X  Контроль обработки некоторых расширений Паскаля

Function  Определяет подпрограмму, которая возвращает значение

 
Пример кода : Сбой компиляции кода, который не назначает результат функции
begin
  // Выключение расширенного синтаксиса
  {$ExtendedSyntax Off}

  // Вызов функции GetValue, не назначая результат
  GetValue;
end;

// Функция, которая просто возвращает значение 1
function TForm1.GetValue: Integer;
begin
  Result := 1;
end;

Сбой компиляции :

[Error] Unit1.pas(39): Statement expected, but expression of type 'Integer' found
[Error] Unit1.pas(45) Undeclared identifier: 'Result'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 
Пример кода : Код, который не назначает результат функции компилируется нормально
begin
  // Выключение расширенного синтаксиса
  {$ExtendedSyntax On}

  // Вызов функции GetValue, не назначая результат
  GetValue;
end;

// Функция, которая просто возвращает значение 1
function TForm1.GetValue: Integer;
begin
  Result := 1;
end;

Код компилируется нормально и выполняется, нечего не делая.
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook