Syntaxe étendue (Delphi)
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.