PDA

Ver la Versión Completa : [Compilador] ¿Cómo comprobar si una ventana está abierta?


Joseg
2 de febrero de 2026, 12:31
Buenos días, buena semana. ¿Cómo puedo evitar que aparezca el mensaje adjunto? ¿Hay alguna forma de controlarlo?

Tengo una DLL que simplemente muestra que una acción se ejecutó correctamente.
El problema es que cuando el usuario valida rápidamente, la primera acción aún no ha finalizado...

Podría usar "call", pero prefiero realizar la llamada con "open...".
Gracias.



*================================================= =============================
INVOKE pow-self "OpenForm" USING "Validou" "Validou" *> show msg 3segundos
*================================================= =============================

Joseg
2 de febrero de 2026, 16:09
Buenos días, buena semana. ¿Cómo puedo evitar que aparezca el mensaje adjunto? ¿Hay alguna forma de controlarlo?

Tengo una DLL que simplemente muestra que una acción se ejecutó correctamente.
El problema es que cuando el usuario valida rápidamente, la primera acción aún no ha finalizado...

Podría usar "call", pero prefiero realizar la llamada con "open...".
Gracias.



*================================================= =============================
INVOKE pow-self "OpenForm" USING "Validou" "Validou" *> show msg 3segundos
*================================================= =============================




¡Ya encontré una solución!

Kuk
2 de febrero de 2026, 21:23
¡Ya encontré una solución!
Pues compártela ;)

Yo me acuerdo que solucioné este problema con las llamadas "cookies":

INVOKE POW-SELF "OpenForm" USING FormName [DllName] [Cookie]


En el parámetro "coockie" pones un número único para cada Form que abres, y un flag de tipo GLOBAL para cada Form también (bueno, más bien una tabla interna)
En el evento CloseChild del Form padre, con un EVALUATE se sabe qué Form hijo se acaba de cerrar, así se pone el flag correspondiente a inactivo.

Y en los botones, sólo queda añadir la validación del flag: si inactivo, podemos abrir el Form.