Hab's rasch gescheckt in XE4, XE6 und Tokyo. Das Verhalten ist immer gleich.
Eine globale Variable wird direkt nach dem finalization Teil der
unit. in welcher sie definiert ist geleert.
Wenn du also eine unit1 hast mit einer var a und zum Projekt eine unit2 hinzufügst mit einer var b und das Programm laufen lässt, dann wird unit2 initialisiert, dann unit1 - beim Beenden unit1 finalisiert und dann unit2.
Du kannst bereits im Initialisierungsteil von unit2 a einen Wert zuweisen, aber:
Wenn du im finalization Teil von unit2 auf a zugreifst, dann ist a leer.
[Speichere doch deine Dinge im DestroyForm des Hauptfensters oder sonst irgendwo...
, wo noch alle Werte vorhanden sind.]