Syntaxe étendue (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Delphi - Index


Type

Commutateur

Syntaxe

{$X+} ou {$X-} {$EXTENDEDSYNTAX ON} ou {$EXTENDEDSYNTAX OFF}

Par défaut

{$X+} {$EXTENDEDSYNTAX ON}

Portée

Globale

Remarques

Remarque :  La directive $X est fournie pour assurer la compatibilité ascendante. Vous ne devez pas utiliser le mode {$X-} lors de l'écriture d'applications Delphi.

La directive $X active ou désactive la syntaxe étendue de Delphi :

  • Appels de fonctions. En mode {$X+}, les appels de fonctions peuvent être utilisés comme des appels de procédures ; autrement dit, le résultat d'un appel à une fonction peut être ignoré plutôt que transmis à une autre fonction ou utilisé dans une opération ou une assignation. Généralement, les calculs opérés par une fonction sont renvoyés dans son résultat et le fait de ne pas vouloir récupérer ce résultat paraît un peu absurde. Mais, une fonction est parfois appelée parce qu'elle effectue une tâche, comme la définition de la valeur d'une variable globale, sans produire un résultat utile.
  • La variable Result. En mode {$X+}, la variable prédéfinie Result peut servir dans le corps d'une fonction à contenir la valeur renvoyée par la fonction.
  • Chaînes à zéro terminal. En mode {$X+}, les chaînes Delphi peuvent être assignées à des tableaux de caractères indicés à partir de zéro (array[0..X] of Char), qui sont compatibles avec les types PChar.

Cette directive affecte aussi l'utilisation du symbole ^ pour indiquer des pointeurs. Quand {$X+} est en vigueur (par défaut), vous pouvez omettre le symbole ^ lors du référencement des pointeurs. Lors de la déclaration d'un pointeur, le symbole ^ est toutefois nécessaire.

Par exemple :

{$X+}
type
   PMyRec = ^TMyRec;
   TMyRec = record
     Data: Integer;
   end;

 var
   MyRec: PMyRec;

 begin
   New(MyRec);
   MyRec.Data := 42;  {#1}
 end.

Normalement, la ligne marquée #1 serait exprimée sous la forme :

MyRec^.Data := 42;

Mais avec la syntaxe étendue activée, le symbole ^ peut être omis.

Voir aussi