You can use a form's show() method to make it active if
you have a reference to it.
Here's a convoluted example:
oForm1 = CREATEOBJECT("MyForm"

oForm2 = CREATEOBJECT("MyForm",oForm1)
oForm3 = CREATEOBJECT("MyForm",oForm2)
oForm3.oLinkedForm = oForm1
oForm3.cmdActivate.CAPTION = "Activate "+oForm1.NAME
oForm2.oLinkedForm = oForm3
oForm2.cmdActivate.CAPTION = "Activate "+oForm3.NAME
oForm1.oLinkedForm = oForm2
oForm1.cmdActivate.CAPTION = "Activate "+oForm2.NAME
oForm3.show()
oForm2.SHOW()
oForm1.SHOW()
READ EVENTS
DEFINE CLASS MyForm AS FORM
oLinkedForm = NULL
HEIGHT = 100
WIDTH = 160
ADD OBJECT cmdActivate AS COMMANDBUTTON WITH;
HEIGHT = 24, ;
AUTOSIZE = .T., ;
CAPTION = ""
PROCEDURE INIT(loLinked)
IF VARTYPE(loLinked) == "O"
THIS.oLinkedForm = loLinked
THIS.cmdActivate.CAPTION = "Activate "+loLinked.NAME
this.left = loLinked.left + loLinked.width + 50
ENDIF
ENDPROC
PROCEDURE DESTROY
CLEAR EVENTS
ENDPROC
PROCEDURE cmdActivate.CLICK
IF VARTYPE(THISFORM.oLinkedForm) == "O"
THISFORM.oLinkedForm.SHOW()
ENDIF
ENDPROC
ENDDEFINE
'We all must do the hard bits so when we get bit we know where to bite'
