Die globale Variable braucht es dafür nicht. Es gilt ausschließlich der Name und die "automatische" globale Registrierung der TDataModule.
Und ja, diese Variante hatte ich auch schon beschrieben und wie bereits gesagt, muß man nachher das DataModul umbenennen, da sonst mehrere Datenmodule mit dem selben Namen global registriert sind und welches davon dann für die Verlinkung genommen wird, das ist potentiell zufällig.
Erstmal gibt es die Liste in TScreen.DataModule
Der
DFM-Loader verwendet nun Classes.FindGlobalComponent, welches über RegisterFindGlobalComponentProc(Forms.FindGlobalComponent) in Forms.pas auf Screen.DataModules geht,
und schnappt sich die erste Instanz aus Screen.DataModules, mit dem kleinsten Index und dem gewünschten Name, aber das muß nicht unbedingt die von deinem letzten TDataModule.Create sein.