Ich muss meinen Vorrednern da einfach zustimmen.
Nur weil man etwas verwenden kann, heißt das noch lange nicht, dass man es verwenden muss.
Wenn man wirklich sauberen und durchdachten Code schreibt, dann sind Dinge wie globale Variablen, GOTOs, Do Withs, etc. völlig unnötig.
Naja, fast unnötig. Ich habe in den meisten meiner Anwendungen auch globale Variablen.
Allerdings beschränke ich die immer gerne auf folgende Definition
Delphi-Quellcode:
threadvar
tv: TThreadVars;
var
pv: TPublicVars;
Im 'tv' werden alle globalen Werte gespeichert, die für diesen Thread notwendig sind.
Zum Beispiel ein Pointer auf den aktuellen
Indy-Thread, oder ggf. noch eine Benutzerreferenz.
Im 'pv' stehen Werte für die aktuelle Programmversion, der Anwendungspfad, der Logpfad, etc.
Somit reichen 2 globale Variablen, die intern eine Klasse oder ein Record sind aus, um diverse
Konfigurationsmöglichkeiten durch die ganze Anwendung zu schleifen.