>>>LOCAL lnForm, lnFormToClose >>>lnFormToClose = 1 >>>FOR lnForm = 1 TO _screen.FormCount >>> IF TYPE("_screen.Forms(lnFormToClose)") == "O" >>> IF _screen.Forms(lnFormToClose).QueryUnload() >>> _screen.Forms(lnFormToClose).Release() >>> ELSE >>> RETURN .F. >>> ENDIF >>> ELSE >>> lnFormToClose = lnFormToClose + 1 >>> ENDIF >>>ENDFOR >>>CLEAR EVENTS >>>DO cleanup >>>>>>...and Cleanup does CLOSE DATABASES, CLEAR ALL, SET CLASSLIB TO, and so forth.
>>LOCAL lnForm, lnCount >>lnCount = _screen.FormCount >>FOR lnForm = 1 TO lnCount && have to do this because formcount >> && changes every time you close a form >> IF TYPE("_screen.Forms(lnForm)") == "O" && might also test to see if >> && BASECLASS property is "FORM" >> IF _screen.Forms(lnForm).QueryUnload() >> _screen.Forms(lnForm).Release() >> ELSE >> RETURN .F. >> ENDIF >> ENDIF >>ENDFOR >>CLEAR EVENTS >>DO cleanup>