Gracias, pero no funciona
Sigo investigando y ahora he comprobado que este comportamiento sólo ocurre si el folder no tiene controles (lo que no suele suceder) o de los controles que tiene, no hay ninguno activo, Si hay un control activo la validación se ejecuta correctamente y el dialogo no se cierra pero si no tiene controles o todos los controles del diálogo estan desactivados (lo que me sucede constantemente, por ejemplo cuando estamos en modo consulta) el dialogo se cierra siempre despues de ejecutar el valid
he modificado el ejemplo para comprobar lo que digo
- Code: Select all Expand view
STATIC FUNCTION Prueba1(oWnd)
Local oDlg, oFld, oGet1, cGet1, oGet3, cGet3, oBtn
DEFINE DIALOG oDlg TITLE "Dialogo"
@ 1,1 FOLDER oFld PROMPT "Uno", "Dos", "Tres", "Cuatro" OF oDlg
cGet1 := SPACE(10)
@ 1,1 GET oGet1 VAR cGet1 OF oFld:aDialogs[1]
cGet3 := SPACE(10)
@ 1,1 GET oGet3 VAR cGet3 OF oFld:aDialogs[3]
oGet3:Disable()
@ 1,1 BUTTON oBtn OF oFld:aDialogs[4]
ACTIVATE DIALOG oDlg NOWAIT CENTER;
VALID MsgYesNo("Salir")
RETURN NIL
En esta modificacion del ejemplo, si se pulsa escape cuando estamos en el primer o en el cuarto folder, el valid se ejecuta correctamente; sin embargo, si se pulsa en el segundo o en el tercero, el dialogo se cierra.
¿Habria alguna forma de modificar la CLASE para que busque algún control activo del dialogo en el que se encuentra el folder para pasarle el foco y que de esta forma no se me cierre el dialogo?
Gracias