Ciao Mario,
da anni uso una propria classe derivata dalla classe App.
Tutto quello che mi serve in maniera globale non è poi altro che una
variable della classe App estesa.
L'unica variabile globale perciò è il oggetto App stesso.
Il bello di questa soluzione è che al termine programma il garbage
collector "pulisce" questo oggetto automaticamente.
La mia funzione Start() è questa:
FUNCTION Start()
ErrorBlock( {|oError| WDefError(oError)} )
oApp := EnhancedApp{}
__SetAppObject( oApp )
oApp:Start()
oApp:Quit()
oApp:Destroy()
oApp := NULL_OBJECT
RETURN NIL
e la classe EnhancedApp inizia così (in certi programmi ha qualche
centinaio di variabili perchè ci metto tutte le impostazioni, cache di
dati ecc.
class EnhancedApp inherit App
export cPrgPath as string
export cDataPath as string
export oShell as AppShellWindow
Saluti
Wolfgang
P.S. in X# per queste impostazioni uso un oggetto tipo Singleton (che
può esistere una sola volta).
--