¿Como se anula que se cierre una ventana de un dialogo con escape?
Saludos.
Anular Salida de dialog con scape
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- metaldrummer
- Posts: 113
- Joined: Wed Jan 10, 2007 8:43 pm
- Location: Coquimbo-Chile
- Contact:
Está en lo correcto Antonio. Si te sirve te doy un pequeño ejemplo:Antonio Linares wrote:lSalir = .F.
ACTIVATE DIALOG oDlg VALID lSalir
El diálogo no terminará con escape, ní intentándo cerrarlo, hasta que lSalir sea .T.
Code: Select all
DEFINE DIALOG oDlg RESOURCE "PRUEBA" OF oPadre
REDEFINE BUTTON ID 301 OF oDlg ACTION ( oDlg:bValid:={ || .T.}, oDlg:End()) ;
CANCEL
ACTIVATE DIALOG oDlg CENTER VALID .F.
En este caso saqué esto de un dialogo que utilizo desde recursos y ese botón cuando se presiona me aseguro que cambie el valor de oDlg:bValid que fue definida en el VALID del ACTIVATE DIALOG a .T. y luego le doy con el oDlg:End() la orden de que se cierre el diálogo.
Y como dice mi muy querido amigo Vikthor: "listo el pollo"
Saludos
David Lagos S.
Coquimbo-Chile
Otra opción para evitar la tecla ESC sería
ACTIVATE DIALOG oDlg NOWAIT CENTERED VALID ! GetAsyncKey(VK_ESCAPE)
Saludos
ACTIVATE DIALOG oDlg NOWAIT CENTERED VALID ! GetAsyncKey(VK_ESCAPE)
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Yo utilizo una pequeña funcion:
FUNCTION _()
RETURN !( GetKeyStat( 27 ) )
La aplico así
ACTIVATE DIALOG oDlg VALID _()
ó si necesito otra validación
ACTIVATE DIALOG oDlg VALID IF(_(), <VALIDACION> ,.F.)
ó en una funcion:
ACTIVATE DIALOG oDlg VALID FuncionValidacion(...)
FUNCTION FuncionValidacion(...)
LOCAL lRet := _()
IF lRet
...
...
lRet := .T. ó .F.
...
...
ENDIF
RETRUN lRet
Me va muy bien
Saludos
FUNCTION _()
RETURN !( GetKeyStat( 27 ) )
La aplico así
ACTIVATE DIALOG oDlg VALID _()
ó si necesito otra validación
ACTIVATE DIALOG oDlg VALID IF(_(), <VALIDACION> ,.F.)
ó en una funcion:
ACTIVATE DIALOG oDlg VALID FuncionValidacion(...)
FUNCTION FuncionValidacion(...)
LOCAL lRet := _()
IF lRet
...
...
lRet := .T. ó .F.
...
...
ENDIF
RETRUN lRet
Me va muy bien
Saludos