La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7210 - FORMULARIOS ABIERTOS
Autor:  Natividad Perez Boza
¿hay alguna propiedad que me diga si un formulario está abierto?.

Si no la hay cómo le devuelvo el foco a un formulario abierto, ya que no puedo utilizar el Thisform.Name.

Muchas Gracias.

  Respuesta:  Edwin Bustos Ocampo
Debes escribir en la propiedad name del formulario el nombre de ventana que desees, que no se repita obviamente en el proyecto.

para el ejemplo en la propiedad Name del formulario voy a digitar factura

para validar si el formulario esta abierto o no, debes escribir el siguiente codigo que es bien sencillo y facil de implementar.

if wexist("factura")

messagebox("El formulario se esta ejecutando")

else

messagebox("El formulario NO se esta Ejecutando")

endif

  Respuesta:  Jose Roque
La forma mas facil, es que uses la funcion API FINDWINDOW para que busque si existe una ventana cargada, basandose en el titulo de la misma.
primero declaras la funcion API que vas a usar de la sgte. forma
DECLARE INTEGER FINDWINDOW IN WIN32API STRING cClassName, STRING cWindName

....
....
HWND = FindWindow(0, "Mi Ventana Especial")
If HWND<=0
messagebox("La VEntana no Esta cargada")
.... // que deseas hacer?
else
messagebox("La ventana Esta cargada")
Endif

Espero haberte ayudado,

Saludos

Jose A. Roque
Desarrollador de Aplicaciones