CLEAR PUBLIC llquit llquit = .F. oform1=CREATEOBJECT('form1') oform2=CREATEOBJECT('form2') LOCAL loForm FOR EACH loForm IN _SCREEN.FORMS IF UPPER(ALLTRIM(loForm.CAPTION))='FORM2' loform.text1.value="TEST" EXIT ENDIF ENDFOR oform1.show oform2.show DO WHILE !llquit READ EVENTS ENDDO RETURN DEFINE CLASS form1 AS form Top = 0 Left = 0 Height = 122 Width = 151 DoCreate = .T. Caption = "Form1" ControlBox = .F. Closable = .F. Name = "FORM1" ADD OBJECT text1 AS textbox WITH ; Height = 23, ; Left = 23, ; Top = 20, ; Width = 100, ; Name = "Text1" ADD OBJECT cmdclose AS commandbutton WITH ; Top = 68, ; Left = 23, ; Height = 27, ; Width = 84, ; Caption = "Close", ; Name = "cmdclose" PROCEDURE Init PARAMETERS llquit DODEFAULT() ENDPROC PROCEDURE Unload PRIVATE llstop llstop = .T. FOR EACH loForm IN _SCREEN.FORMS IF UPPER(ALLTRIM(loForm.CAPTION))='FORM2' * Other form is still open so do not quit read llstop = .F. ENDIF ENDFOR IF llstop llquit = .T. CLEAR EVENTS ENDIF DODEFAULT() ENDPROC PROCEDURE cmdclose.Click ThisForm.Release() ENDPROC ENDDEFINE DEFINE CLASS form2 AS form Top = 150 Left = 150 Height = 124 Width = 185 DoCreate = .T. Caption = "FORM2" ControlBox = .F. Closable = .F. WindowType = 0 Name = "FORM2" ADD OBJECT text1 AS textbox WITH ; Height = 23, ; Left = 51, ; Top = 24, ; Width = 100, ; Name = "Text1" ADD OBJECT cmdclose AS commandbutton WITH ; Top = 72, ; Left = 51, ; Height = 27, ; Width = 84, ; Caption = "Close", ; Name = "cmdclose" PROCEDURE Init PARAMETERS llquit DODEFAULT() ENDPROC PROCEDURE Unload PRIVATE llstop llstop = .T. FOR EACH loForm IN _SCREEN.FORMS IF UPPER(ALLTRIM(loForm.CAPTION))='FORM1' * Other form is still open so do not quit read llstop = .F. ENDIF ENDFOR IF llstop llquit = .T. CLEAR EVENTS ENDIF DODEFAULT() ENDPROC PROCEDURE cmdclose.Click ThisForm.Release() ENDPROC ENDDEFINE