Directiva versiunii compilatorului Delphi

Dacă intenționați să scrieți codul Delphi care ar trebui să funcționeze cu mai multe versiuni ale compilatorului Delphi, trebuie să știți în ce versiuni este compilat codul dvs..

Să presupunem că vă scrieți propria componentă personalizată comercială. Utilizatorii componentei dvs. ar putea avea diferite versiuni Delphi decât dvs. Dacă încearcă să recompteze codul componentei - codul tău - s-ar putea să aibă probleme! Ce se întâmplă dacă utilizați parametrii prestabili în funcțiile dvs., iar utilizatorul are Delphi 3?

Directiva compilatorului: $ IfDef

Directivele compilatorului sunt comentarii de sintaxă speciale pe care le putem folosi pentru a controla caracteristicile compilatorului Delphi. Compilatorul Delphi are trei tipuri de directive: sdirective vrăjitoare, directive de parametri și directive condiționate. Compilația condiționată ne permite să compilăm selectiv părți ale unui cod sursă, în funcție de condițiile care sunt setate.

Directiva compilatorului $ IfDef pornește o secțiune de compilare condiționată.

Sintaxa arată ca:

 $ IfDef DefName

... 

 $ Else

... 

 $ Endif

 

DefName prezintă așa-numitul simbol condițional. Delphi definește mai multe simboluri condiționale standard. În "codul" de mai sus, dacă DefName este definit codul de mai sus $ Else devine compilat.

Simboluri versiune Delphi

O utilizare obișnuită pentru directiva $ IfDef este de a testa versiunea compilatorului Delphi. Următoarea listă indică simbolurile de verificat atunci când compilați condiționat pentru o anumită versiune a compilatorului Delphi:

  • SIMBOL - VERSIE COMPILER
  • 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 - Indică faptul că mediul de operare este API-ul Win32.
  • LINUX - Indică faptul că mediul de operare este Linux
  • MSWindows - Indică faptul că mediul de operare este MS Windows / li]
  • CONSOLĂ - Indică faptul că o aplicație este compilată ca o aplicație de consolă

Cunoscând simbolurile de mai sus, este posibil să scrieți codul care funcționează cu mai multe versiuni de Delphi folosind directive ale compilatorului pentru a compila codul sursă corespunzător pentru fiecare versiune.

Notă: simbolul VER185, de exemplu, este utilizat pentru a indica compilatorul Delphi 2007 sau o versiune anterioară.

Folosind simboluri „VER”

Este destul de obișnuit (și de dorit) pentru fiecare nouă versiune Delphi să adauge mai multe noi rutine RTL în limbă.

De exemplu, funcția IncludeTrailingBackslash, introdusă în Delphi 5, adaugă „\” la capătul unei șiruri, dacă nu există deja. În proiectul Delphi MP3, am folosit această funcție și mai mulți cititori s-au plâns că nu pot compila proiectul - au o versiune Delphi înainte de Delphi 5.

O modalitate de a rezolva această problemă este de a crea propria versiune a acestei rutine - funcția AddLastBackSlash. Dacă proiectul ar trebui să fie compilat pe Delphi 5, se numește IncludeTrailingBackslash. Dacă se utilizează unele dintre versiunile anterioare Delphi, atunci simulăm funcția IncludeTrailingBackslash.

Ar putea arăta ceva de genul: