* checkFormNotLaunched.prg * Launch a form if not already launched local form1, form2 clear ? Datetime(), 'start' form1 = CreateObject('formTest', 'form1') activate screen ? Datetime(), 'form1', m.form1 form2 = CreateObject('formTest', 'form2') activate screen ? Datetime(), 'form2', m.form2 MessageBox('End test?') * =========================== define class formTest as form autocenter = .T. procedure init(caption) this.Caption = m.caption local llSCX, lcSCX, oForm as Form llSCX = Empty(m.this.ClassLibrary) lcSCX = Sys(1271, m.this) for each oForm in _Screen.Forms foxobject if not m.oForm = m.this if Iif(m.llSCX; , Sys(1271, m.oForm) == m.lcSCX; , m.oForm.Class == this.class and m.oForm.ClassLibrary == this.ClassLibrary; ) m.oForm.Init(m.caption) && don't forget to init existing form to whatever parameters you need m.oForm.Show return .F. endif endif endfor * Some more code ... endproc enddefine