Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Closing a modal form
Message
From
12/06/2023 06:08:19
 
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
01686646
Message ID:
01686723
Views:
111
>Hi,
>
>Can you programmatically close a modal form when a user clicks anywhere outside the form?
>
>TIA

I completely forgot (lack of sleep) how make a modeless form to be open? That is, when I make the form modeless and reference it with a LOCAL variable, it opens and closes immediately.
Is the only way to make the modeless form stay to reference it with the PUBLIC variable?

I am a bit late for a reply and I doesn't remember who inspired me for this solution.
The solution is based on the use of 'ON KEY LABEL MOUSE _SCREEN.ActiveForm.Click()'
Here is what I used.
PRE>
DEFINE CLASS frmautoclose AS frmmodaldialog OF "gc_base.vcx" && Form is closed when clicking outside the form
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />

*
*m: frmclose
*


DoCreate = .T.
Name = "frmautoclose"
_memberdata =



PROCEDURE Click
lcWindow=MWINDOW()
IF !(MWINDOW() == UPPER(ThisForm.Name))
ON KEY LABEL MOUSE
ThisForm.frmClose()
THISFORM.Release()
ENDIF

ENDPROC

PROCEDURE Destroy
ON KEY LABEL MOUSE
ENDPROC

PROCEDURE frmclose
* abstract method
ENDPROC

PROCEDURE Init
IF DODEFAULT()
ON KEY LABEL MOUSE _SCREEN.ActiveForm.Click()
ENDIF
ENDPROC

ENDDEFINE
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform