Salir de DLG con gets, con ESC

Post Reply
User avatar
noe aburto
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Salir de DLG con gets, con ESC

Post by noe aburto »

Saludos foro.

Por sentir que es mas practico con algunos clientes el uso de la tecla ESC en lugar del tsbutton 7.0 con la opcion cancelar
no he podido resolver como hacerlo, tengo esto:

DEFINE DIALOG oDLG(1) FROM nTop,nIzq-3 TO nBot+40,nDer STYLE nOR( DS_MODALFRAME, WS_POPUP ) PIXEL;
COLOR aCOLOR(19),aCOLOR(18)

@ 1, 1 get oGet1 var cGet1 picture '@!'
@ 1,10 get oGet2 var cGet2 picture '@R'
@ 1,40 get oGet3 var cGet3 picture '@S20'
etc...

@ (nBot-nTop)-2,(nDer-nIzq)/2-71 SBUTTON oBtn[1] PROMPT '&Aceptar' RESOURCE 'GOSEMA','GOSEMV' OF oDLG(1);
ACTION ( lSalir:=ValidaVent(aVent),;
IF( lSalir,;
( _lSalvar:=.T.,;
AfectaDBF(aVent,lBloquea,bProceso),;
oDLG(1):End() ),;
NIL) );
XP COLOR COLOR_ACEPTA;
SIZE 33,12 TEXT POSITION 4;
PIXEL

@ (nBot-nTop)-2,(nDer-nIzq)/2-34 SBUTTON oBtn[2] PROMPT '&Cancelar' RESOURCE 'GOSEMN','GOSEMR' OF oDLG(1);
ACTION ( lSalir:=.t., _lSalvar:=.F.,;
AfectaDBF(aVent,lBloquea,bProceso),;
oDLG(1):End() );
XP COLOR COLOR_CANCELA;
SIZE 33,12 TEXT POSITION 4;
PIXEL CANCEL

ACTIVATE DIALOG oDLG(1)

En el dialogo tenglo los gets en en una sola linea, y si soy "aceptar" va y afecta mi dbf, si doy "cancelar" no afecta mis dbf, esto funciona perfecto, pero como hago que al teclear ESC, este dialogo se cierre y no afecte a los botones.

Alguna sugerencia.
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
sysctrl2
Posts: 1048
Joined: Mon Feb 05, 2007 7:15 pm
Has thanked: 6 times
Contact:

Re: Salir de DLG con gets, con ESC

Post by sysctrl2 »

es mu sencillo:

Code: Select all | Expand

FUNCTION DLG()
local lExit := .f.
local oBox
local oBtn1, oBtn2
DEFINE DIALOG oBox  SIZE 400, 330

@ 6.5, 4.5 BUTTON oBtn[1] PROMPT "&Aceptar"  SIZE 60, 24 OF oBox ;
       ACTION (  lExit := .t., oBox:end()  )

  @ 6.5, 15.5 BUTTON oBtn[2] PROMPT "&Regresar" SIZE 60, 24 OF oBox  ACTION ( oBox:end() ) CANCEL


ACTIVATE DIALOG oBox CENTERED

if lExit
 *** guardalo
endif

return nil
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Salir de DLG con gets, con ESC

Post by horacio »

No sé si entendí bien pero se me ocurre esto

Code: Select all | Expand


   oGet : oWnd : bKeyDown := { | nKey | If( nKey == VK_ESCAPE, ( lSalir := .t., oDlg : End() ), ) }
 


Saludos
derpipu
Posts: 94
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico
Contact:

Re: Salir de DLG con gets, con ESC

Post by derpipu »

Hola, solo usa la clausula CANCEL despues del action del boton: ACTION ( oBox:end() ) CANCEL

Saludos
Luis Fernando Rubio Rubio
User avatar
noe aburto
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Salir de DLG con gets, con ESC

Post by noe aburto »

Saludos.

Estimados colegas, ya lo he intentado con el ejemplo que exponen sin resultado positivo.

Horacio, ya habia intentado con bKeyDown, el caso de este, es que no me reconoce la tecla ESC, cualquier tecla, incluyendo enter me la identifica, menos ESC, y logico, nunca entraria a oDLG:End()

Seguire intentando
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Salir de DLG con gets, con ESC

Post by joseluisysturiz »

Yo te recomendaria que le quitases la opcion de salir con ESC...asi educas al usuario a usar los botones..sino, para que los hacemos..? saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Salir de DLG con gets, con ESC

Post by hmpaquito »

joseluisysturiz wrote:.asi educas al usuario a usar los botones..sino, para que los hacemos..?


Muchos usuarios han aprendido de los smartphones que esta genial tener un programa que esta pensado para ser agil en el manejo, y para posibilidades ¡ las que da un sistema escritorio !
Habra usuarios que solo utilicen los botones, usuario estilo marmota hibernada, pero otros usuarios agradeceran mucho que se pueda utilizar el teclado porque les da agilidad de manejo.
Lo que de algun modo quiero decir, es que hay variedad de tipos de usuarios y por tanto hay que pensar en todos ellos y ampliar las posibilidades de manejo del programa a todos ellos.
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Salir de DLG con gets, con ESC

Post by joseluisysturiz »

Estoy de acuerdo contigo, si pero no...jejejje.... intentastes con esto en el ON INIT VALID( GETKEYSTATE( VK_ESCAPE ) ).? saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
noe aburto
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Salir de DLG con gets, con ESC

Post by noe aburto »

Resuelto:

oGET:bKeyDown:={|nKey|IF(GetKeyState(VK_ESCAPE),oDLG:End(),NIL)}

y estando en cualquier GET del oDLG sale con ESC
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Post Reply