Kompilatordirektiver er spesielle syntakskommentarer vi kan bruke til å kontrollere funksjonene til Delphi-kompilatoren. Delphi-kompilatoren har tre typer direktiver: sheksedirektiv, parameterdirektiv og betingede direktiver. Betinget sammenstilling lar oss selektivt sammenstille deler av en kildekode avhengig av hvilke betingelser som er satt.
De defname presenterer det såkalte betingede symbolet. Delphi definerer flere standardbetingede symboler. I "koden" ovenfor, hvis DefName er definert koden over $ Else blir satt sammen.
En vanlig bruk for $ IfDef-direktivet er å teste versjonen av Delphi-kompilatoren. Følgende liste indikerer symbolene som skal kontrolleres når du kompilerer betinget for en bestemt versjon av Delphi-kompilatoren:
Merk: symbolet VER185, for eksempel, brukes til å indikere Delphi 2007-kompilatoren eller en tidligere versjon.
For eksempel legger IncludeTrailingBackslash-funksjonen, introdusert i Delphi 5, "\" til slutten av en streng hvis den ikke allerede er der. I Delphi MP3-prosjektet har jeg brukt denne funksjonen, og flere lesere har klaget på at de ikke kan kompilere prosjektet - de har noen Delphi-versjoner før Delphi 5.
En måte å løse dette problemet er å lage din egen versjon av denne rutinen - AddLastBackSlash-funksjonen. Hvis prosjektet skulle settes sammen på Delphi 5, kalles IncludeTrailingBackslash. Hvis noen av de tidligere Delphi-versjonene blir brukt, simulerer vi funksjonen IncludeTrailingBackslash.
Delphi 2007 bruker VER180 for å opprettholde ikke-brytende kompatibilitet med Delphi 2006 og deretter legger til VER185 for utvikling som spesifikt trenger å målrette Delphi 2007 for hva som helst Årsaken. Merk: når grensesnittet til en enhet endrer koden som bruker den enheten må kompileres på nytt.