Erweiterte Syntax (Delphi)
Nach oben zu Liste der Delphi-Compiler-Direktiven - Index
Typ |
Option |
Syntax |
{$X+} oder {$X-} {$EXTENDEDSYNTAX ON} oder {$EXTENDEDSYNTAX OFF} |
Vorgabe |
{$X+} {$EXTENDEDSYNTAX ON} |
Bereich |
Global |
Anmerkungen
Hinweis: Die Direktive $X dient lediglich der Abwärtskompatibilität. Verwenden Sie daher {$X-} nicht in Ihren Delphi-Anwendungen.
Mit der Direktive $X lässt sich die erweiterte Syntax von Delphi aktivieren oder deaktivieren:
- Funktionsanweisungen. Im Modus {$X+} lassen sich Funktionsaufrufe als Prozeduraufrufe verwenden, d.h. das Ergebnis eines Funktionsaufrufs kann ignoriert werden, anstatt an eine andere Funktion übergeben oder in einer Operation bzw. Zuweisung verwendet zu werden. Im Allgemeinen werden die von einer Funktion ausgeführten Berechnungen durch das Funktionsergebnis repräsentiert, das nicht ignoriert werden sollte. Manchmal führen Funktionen aber lediglich eine bestimmte Operation durch (z. B. einer globalen Variablen einen Wert zuweisen) und geben keinen Wert zurück, der weiterverwendet werden kann.
- Result-Variable. Im Modus {$X+} kann die vordefinierte Variable Result für den Rückgabewert der Funktion verwendet werden.
- Nullterminierte Strings. Im Modus {$X+} können Delphi-Strings nullbasierten Zeichen-Arrays (array[0..X] of Char) zugewiesen werden, die mit den PChar-Typen kompatibel sind.
Diese Direktive wirkt sich auch auf die Verwendung des Caret-Zeichens (^) aus, mit dem Zeiger gekennzeichnet werden. Wenn {$X+} aktiv ist (Vorgabe), können Sie beim Referenzieren von Zeigern das Caret weglassen. Wenn Sie aber einen Zeiger deklarieren, müssen Sie das Caret verwenden.
Zum Beispiel:
{$X+} type PMyRec = ^TMyRec; TMyRec = record Data: Integer; end; var MyRec: PMyRec; begin New(MyRec); MyRec.Data := 42; {#1} end.
Normalerweise würde die mit #1 gekennzeichnete Zeile folgendermaßen aussehen:
MyRec^.Data := 42;
Wenn aber die erweiterte Syntax aktiviert ist, kann das Caret weggelassen werden.