Ok, nothing works, I need to leave. Found a bug (typo) in my old FAQ, corrected it.
I'm not sure why I'm getting 'forms is not an object' on the pemstatus line now.
I think I'm running into dangling reference somehow.
lnForms = _SCREEN.FORMCOUNT
DO WHILE lnForms > 0 AND llExit
IF PEMSTATUS(_SCREEN.FORMS(lnForms),'QueryUnload', 5)
llExit = _SCREEN.FORMS(lnForms).QUERYUNLOAD()
ENDIF
IF llExit
_SCREEN.FORMS(lnForms).RELEASE
lnForms = m.lnForms - 1
ENDIF
ENDDO
>I don't think error handling is necessary. You can use type() or vartype() first, to check whether
_screen.Forms[lnCount] exists.
>
>Error handling is more likely to be required to handle anything OUTSIDE your application, such as access to files - where you can't tell in advance what the situation is going to be (e.g., whether a file exists, or whether you can actually access it).
>
If it's not broken, fix it until it is.
My Blog