Erweiterte Syntax (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

Siehe auch