Problema con VFP

Necesitaría saber como controlar si una ventana con un titulo determinado ya esta abierta.
¿Hay alguna API u otra forma de controlar esto?

1 respuesta

Respuesta
1
Se puede hacer con una API. Es cuestión de investigarla, no es difícil hallar esa solución. Por lo pronto te puedo decir el modo "a pulmón".
Crea una tabla libre que tenga los siguientes campos:
CREATE TABLE UsuariosConectados (ID I AUTOINC, Maquina C(40))
Luego en el programa principal invoca una rutina que registre o valide la entrada al sistema de la máquina en uso.
FUNCTION RegistrarEntrada
IF !USED("UsuariosConectados")
USE UsuariosConectados IN 0
ENDIF
cNombreMaquina = SUBSTR(ID(),1,AT("#",ID())-2)
SELECT UsuariosConectados
LOCATE FOR Maquina = cNombreMaquina
IF FOUND()
MESSAGEBOX("El sistema ya está activo en esta maquina.")
QUIT
ELSE
APPEND BLANK
REPLACE Maquina WITH cNombreMaquina ;
Use
Endif
Endfunc
Ahora, cuando el usuario salga del sistema, mandas a borrar el registro correspondiente en la tabla UsuariosConectados:
DELETE FROM UsuariosConectados WHERE Maquina = SUBSTR(ID(),1,AT("#",ID())-2)
En FoxPro:
IF WEXIST("NombreFisicoFormulario")
IF NombreFisicoFormulario.Caption = "MI TITULO"
MESSAGEBOX("Esta pantalla ya existe")
NombreFisicoFormulario.Show
Endif
Puse la condición del Caption porque eso es lo que entiendo de tu pregunta, que quieres saber si una pantalla con un titulo determinado está abierta. Pero lo que supongo es que quieres saber si una pantalla está abierta para evitar volver a llamarla, y que se muestre si ya ha sido creada, entonces solo usa la primera condición.
Alfredo García
TSU en Informática
TSU

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas