Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Closing a modal form
Message
 
 
To
12/06/2023 06:08:19
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
01686646
Message ID:
01686724
Views:
57
>>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
>

Thank you very much for your suggestion and code.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Reply
Map
View

Click here to load this message in the networking platform