FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Anular Salida de dialog con scape
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Anular Salida de dialog con scape
Posted: Sun Aug 12, 2007 08:56 AM

¿Como se anula que se cierre una ventana de un dialogo con escape?

Saludos.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Anular Salida de dialog con scape
Posted: Sun Aug 12, 2007 09:06 AM

lSalir = .F.

ACTIVATE DIALOG oDlg VALID lSalir

El diálogo no terminará con escape, ní intentándo cerrarlo, hasta que lSalir sea .T.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 113
Joined: Wed Jan 10, 2007 08:43 PM
Anular Salida de dialog con scape
Posted: Sun Aug 12, 2007 04:45 PM
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.


Está en lo correcto Antonio. Si te sirve te doy un pequeño ejemplo:

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.


Te explico: al utilizar "VALID .F." en el ACTIVATE DIALOG, estamos indicando que aunque presiones la tecla ESC o presiones la X del diálogo, éste no se cerrará. Lo importante es que te fijes en lo que hace el botón.
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
David Lagos S.
Coquimbo-Chile
www.wificafe.cl
webmaster@wificafe.cl
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Anular Salida de dialog con scape
Posted: Sun Aug 12, 2007 07:33 PM

Otra opción para evitar la tecla ESC sería

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
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Anular Salida de dialog con scape
Posted: Mon Aug 13, 2007 10:18 PM
Yo utilizo una pequeña funcion:

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


La aplico así

ACTIVATE DIALOG oDlg VALID NoScape()

ó si necesito otra validación

ACTIVATE DIALOG oDlg VALID IF(NoScape(), <VALIDACION> ,.F.)

ó en una funcion:

ACTIVATE DIALOG oDlg VALID FuncionValidacion(...)

FUNCTION FuncionValidacion(...)
LOCAL lRet := NoScape()
IF lRet
...
...
lRet := .T. ó .F.
...
...
ENDIF
RETRUN lRet

Me va muy bien

Saludos
Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55

Continue the discussion