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

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

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

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

2 {$X+}

Delphi Sources

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

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

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

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

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

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

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

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

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

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

  // Вызов функции 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
  // Выключение расширенного синтаксиса
  {$X+}

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

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


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

DeLiKaTeS Tetris (Тетрис)

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

 

Айболит (remote control)

ListBox Drag & Drop

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

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

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

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

 

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

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