General information
Category:
Forms & Form designer
>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
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only