Mit Compilerschaltern kannst Du Features des Compilers an- bzw. ausschalten.
Klassisches Beispiel sind bestimmte Optimierungen wie z.B. die vollständige Auswertung von boolschen Ausdrücken.
Du kannst mit selbst definierten Schaltern (bzw. eher Direktiven) aber auch sagen, dass bestimmte Codeblöcke einkompiliert werden sollen oder nicht.
Klassisches Beispiel hier: Wenn für Debug-Zwecke kompiliert wird, lässt Du bestimmte Codezeilen die viele sehr detaillierte Logausgaben machen mit einkompilieren, im Release-Build sollen die Zeilen aber nicht drin sein.
Hier mal ein ganz kurzer Abriss:
http://www.delphipraxis.net/91465-er...rschalter.html