Page 1 of 1

Como evito que se cierre un dialogo al presionar <Escape&

PostPosted: Mon Apr 24, 2006 1:33 am
by José Ríos
Hola colegas.

Necesito desactivar el cierre de un dialogo cuando se presiona la tecla <Escape>. ¿Alguien sabe como hacerlo?.

Uso FWH 2.4 y Xharbour 0.99.3.


De antemano muchas gracias.

Jose Ríos.

PostPosted: Mon Apr 24, 2006 2:58 am
by lafug
José, condiciona la salida del dialogo con una variable


local lSale :=.f.
local oDlg
DEFINE DIALOG oDlg RESOURCE "ODLG_FACTURA" TITLE "mi dialogo"

REDEFINE BTNBMP oB311 ID 311 RESOURCE "SALIR" OF oDlg ACTION (lSale:=.t., oDlg:end());
ACTIVATE DIALOG oDlg VALID lSale

PostPosted: Mon Apr 24, 2006 7:07 pm
by manuramos
Yo personalmente utilizo la funcion:

FUNCTION NoScape()
RETURN !( GetKeyStat( 27 ) )

Y la llamo desde un valid del dialogo:

DEFINE DIALOG oDlg .....
...
...
ACTIVATE oDlg VALID NoScape()

Observa que la función devuelve .T. cuando no se ha pulsado Escape. Por si quieres utilizarlo en conjunción con otras funciones. Por ejemplo

VALID NoScape() .AND. MiFuncion(...)

PostPosted: Tue Apr 25, 2006 8:01 pm
by José Ríos
Muchas gracias por los tips, me han sido muy utiles.


Saludos.

Jose Rios.