Page 1 of 1

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

Posted: 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.

Posted: 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

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

FUNCTION _()
RETURN !( GetKeyStat( 27 ) )

Y la llamo desde un valid del dialogo:

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

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 _() .AND. MiFuncion(...)

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


Saludos.

Jose Rios.