Dyrektywy są dostępne dla danego modułu, od miejsca ich deklaracji w dół, aż do końca modułu.
Aby zwiększyć ich zasięg, możesz je zadeklarować w pliku dołączanym i za pomocą dyrektywy {$INCLUDE} dołączyć plik do tych modułów, w których mają obowiązywać. Wszystko zależy od potrzeb.
W swoim projekcie korzystam właśnie z tego sposobu, aby w każdym module obowiązywał mój zestaw dyrektyw, własnych symboli oraz makr preprocesora (jeśli chodzi o Lazarusa). Ot każdy mój moduł zawiera na początku dołączenie dwóch plików — przełączniki oraz makra:
Kopiuj
unit Wnc_UnitName;
// Global compiler switches and macros.
{$INCLUDE Wnc_Switches.inc}
{$INCLUDE Wnc_Macros.inc}
interface
{...}
Jeśli chcę zmienić jakąś dyrektywę lub dodać symbol to modyfikuję plik .inc i nowinki mam widoczne w całym projekcie. Możesz skorzystać z tego sposobu, aby rozwiązać swój problem.
Całkiem możliwe, że Delphi pozwala deklarować symbole o zasięgu globalnym, ale nie mam go zainstalowanego, więc nie sprawdzę. Chodzi mi o odpowiednik lazarusowego panelu Additions and Overrides — chyba Delphi ma coś takiego, o nazwie Conditional Defines.
U siebie korzystam z tego, mam zadeklarowanych kilka symboli globalnych i dostępnych dla konkretnych buildów:

Poszukaj czegoś takiego w Delphi, w oknie ustawień projektu.