*--------------------------------------------------------------------------- procedure TerminateApplication(FromTimer) if( FromTimer ) if( !directory( addbs(justpath(fullpath(dbc()))) + 'Down' ) ) return endif endif =ReleaseAllForms() if( CloseDataBase() ) *on shutdown quit endif endproc *--------------------------------------------------------------------------- procedure ReleaseAllForms() local i, obj for i = _Screen.FormCount to 1 step -1 obj = _screen.Forms[i] if( type('obj') == T_OBJECT ) && may have disappeared if( pemstatus(Obj, 'Release',5) ) *acti screen *?obj.Name =Obj.Release() endif endif endfor endproc *---------------------------------------------------------------------------
&& Forms release method =this.MakeSafeToClose() =DoDefault()
&& form.MakeSafeToClose() local a[1], i if( empty(aused(a)) ) return TRUE endif for i = 1 to alen(a,1) if( CursorGetProp('Buffering', a[i,1]) > 1 ) =TableRevert(TRUE, a[i,1]) endif endfor return TRUE
&& form Destroy do while( !empty(txnlevel() ) ) rollback enddo