Delphi Compiler Versionsanweisungen

Wenn Sie Delphi-Code schreiben möchten, der mit mehreren Versionen des Delphi-Compilers funktionieren soll, müssen Sie wissen, unter welchen Versionen Ihr Code kompiliert wird.

Angenommen, Sie schreiben Ihre eigene kommerzielle benutzerdefinierte Komponente. Benutzer Ihrer Komponente haben möglicherweise andere Delphi-Versionen als Sie. Wenn sie versuchen, den Code der Komponente - Ihren Code - neu zu kompilieren, sind sie möglicherweise in Schwierigkeiten! Was ist, wenn Sie Standardparameter in Ihren Funktionen verwenden und der Benutzer Delphi 3 hat??

Compiler-Direktive: $ IfDef

Compiler-Direktiven sind spezielle Syntaxkommentare, mit denen wir die Funktionen des Delphi-Compilers steuern können. Der Delphi-Compiler verfügt über drei Arten von Anweisungen: sHexenanweisungen, Parameteranweisungen und bedingte Anweisungen. Mit der bedingten Kompilierung können wir selektiv Teile eines Quellcodes kompilieren, abhängig von den festgelegten Bedingungen.

Die Compiler-Direktive $ IfDef startet einen bedingten Kompilierungsabschnitt.

Die Syntax sieht folgendermaßen aus:

 $ IfDef DefName


 $ Else


 $ EndIf

 

Das DefName präsentiert das sogenannte bedingte Symbol. Delphi definiert mehrere bedingte Standardsymbole. Wenn im obigen "Code" der DefName definiert ist, den obigen Code $ Else wird kompiliert.

Delphi-Versionssymbole

Die Anweisung $ IfDef wird häufig zum Testen der Version des Delphi-Compilers verwendet. In der folgenden Liste sind die Symbole aufgeführt, die beim bedingten Kompilieren für eine bestimmte Version des Delphi-Compilers überprüft werden müssen:

  • SYMBOL - COMPILER-VERSION
  • VER80 - Delphi 1
  • VER90 - Delphi 2
  • VER100 - Delphi 3
  • VER120 - Delphi 4
  • VER130 - Delphi 5
  • VER140 - Delphi 6
  • VER150 - Delphi 7
  • VER160 - Delphi 8
  • VER170 - Delphi 2005
  • VER180 - Delphi 2006
  • VER180 - Delphi 2007
  • VER185 - Delphi 2007
  • VER200 - Delphi 2009
  • VER210 - Delphi 2010
  • VER220 - Delphi XE
  • VER230 - Delphi XE2
  • WIN32 - Gibt an, dass die Betriebsumgebung die Win32-API ist.
  • LINUX - Gibt an, dass die Betriebsumgebung Linux ist
  • MSWINDOWS - Gibt an, dass die Betriebsumgebung MS Windows / li ist.]
  • KONSOLE - Gibt an, dass eine Anwendung als Konsolenanwendung kompiliert wird

Wenn Sie die obigen Symbole kennen, können Sie Code schreiben, der mit mehreren Delphi-Versionen funktioniert, indem Sie Compiler-Direktiven verwenden, um den entsprechenden Quellcode für jede Version zu kompilieren.

Hinweis: Das Symbol VER185 wird beispielsweise verwendet, um den Delphi 2007-Compiler oder eine frühere Version anzuzeigen.

Verwendung von "VER" -Symbolen

Es ist durchaus üblich (und wünschenswert), dass jede neue Delphi-Version der Sprache mehrere neue RTL-Routinen hinzufügt.

Die in Delphi 5 eingeführte IncludeTrailingBackslash-Funktion fügt beispielsweise "\" an das Ende eines Strings an, wenn dieser noch nicht vorhanden ist. Im Delphi MP3-Projekt habe ich diese Funktion verwendet und einige Leser haben sich beschwert, dass sie das Projekt nicht kompilieren können - sie haben eine Delphi-Version vor Delphi 5.

Eine Möglichkeit, dieses Problem zu lösen, besteht darin, eine eigene Version dieser Routine zu erstellen - die AddLastBackSlash-Funktion. Wenn das Projekt unter Delphi 5 kompiliert werden soll, wird der IncludeTrailingBackslash aufgerufen. Wenn einige der vorherigen Delphi-Versionen verwendet werden, simulieren wir die IncludeTrailingBackslash-Funktion.

Es könnte ungefähr so ​​aussehen: