******************************** ******************************** DEFINE CLASS Singleton AS Custom ******************************** ******************************** ************* FUNCTION Init ************* LPARAMETERS oMyObject oMyObject = THIS.GetExistingInstance() IF ISNULL(oMyObject) oMyObject=THIS ELSE RETURN .F. ENDIF ENDFUNC ************************************** PROTECTED FUNCTION GetExistingInstance ************************************** LOCAL loReturn,lcClassSeft,lnClassInst LOCAL ARRAY laClassInst[1] loReturn = .NULL. lcClass = This.Class lnClassInst = AINSTANCE(laClassInst, lcClass) IF lnClassInst > 0 lcVarName=laClassInst[1] loReturn = &lcVarName ENDIF RETURN loReturn ENDFUNC ********* ********* ENDDEFINE ********* ********* ********************* FUNCTION GetSingleton ********************* LPARAMETERS cClassName LOCAL loResult AS Singleton IF EMPTY(cClassName) cClassName="Singleton" ENDIF CREATEOBJECT(cClassName,@loResult) IF !InstanceOf(loResult,"Singleton") ERROR "The class "+cClassName+" does not inherit of the Singleton class" ENDIF RETURN loResult ENDFUNCRegards,