Das ist reine Geschmacksache.
Es sollten möglichst Verwechslungen ausgeschlossen werden.
Wenn Du
I: Integer = 0;
irgendwo global ablegst besteht die Gefahr, dass Du irgendwo mal versehentlich auf ein lokales I zugreifen willst, aber die lokale Deklaration vergisst und somit die globale Variable benutzt.
In dem Fall wäre vielleicht global_I schon sinnvoller.
Du kannst auch (mit etwas neueren Delphiversionen) eine Klassenvariable nutzen:
Delphi-Quellcode:
TGobals = class
class var
I: Integer;
end;
und so benutzen:
X := TGlobals.I;
So hat man etwas mehr Ordnung in den Units.
Ein Singleton ist sinnvoll, wenn man Objekte bei Bedarf einmalig erstellen lässt und dann künftig immer diese Instanz verwendet. Das hilft Dir bei einfachen Typen nicht.