Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Program to close all forms
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00359746
Message ID:
00359761
Views:
15
>>>>I am trying to run a program to close all forms on the screen. However, the following code closes all but the last form.
>>>>
>>>>***
>>>>FOR EACH oform IN _screen.forms
>>>> oform.RELEASE()
>>>>ENDFOR
>>>>***
>>>>
>>>>How can I get all the opened forms to close?
>>>>
>>>>Thanks,
>>>>
>>>Jerryt,
>>>
>>>You need to do it backwards through the collection. If the forms use the QueryUnload method to check to make sure the form can release, you'd need to check the results of that as well:
lnforms = _SCREEN.FormCount
>>>lldone = .T.
>>>DO WHILE lnforms > 0 AND lldone
>>>  lldone = _SCREEN.Form(lnforms).QueryUnload()
>>>  IF lldone
>>>    _SCREEN.Form(lnforms).Release
>>>    lnforms = lnforms - 1
>>>  ENDIF
>>>ENDDO
>>
>>Or, if there is no code in QueryUnload it can be just like this:
>>
>>ln = _screen.formcount
>>FOR i = ln to 1 STEP -1
>>_screen.Forms(i).Release
>>ENDFOR
>
>Yep, that too, but I'd think that if the form were closeable, you'd almost definetly have some code in QueryUnload. Further, and this is a personal observation, if it weren't closeable, I think you'd be straying from the interface guidelines, don't you?

Who needs non-closeable forms? :)
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro

"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform