FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Ultima tecla en un oGet
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Ultima tecla en un oGet
Posted: Wed Jun 14, 2006 10:26 PM

Hola:
Dentro de una pantalla tengo varios oGet, el caso es que necesito que cuando el usuario este sobre el ultimo oGet, si pulsa enter preguntar si Grabo los datos, si es flecha arriba o cualquier otra q no pase nada, espero haberme explicado correctamente es algo parecido al lastkey() de clipper (no importa q tenga o no datos el ultimo oGet)
salu2
veracruz, mexico

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Ultima tecla en un oGet
Posted: Thu Jun 15, 2006 11:06 AM
Para que un GET reconozca la pulsación de enter y haga algo específico:
oGet:bKeyDown:= {|nKey| if( nKey==VK_RETURN, <acción>, nil ) }

Si quieres que todos los GETs reaccionen igual, puedes hacer:
for n := 1 to Len( oDlg:aControls )
   if Upper( oDlg:aControls[ n ]:ClassName() ) == "TGET"
      oDlg:aControls[ n ]:bKeyDown:= {|nKey| if( nKey==VK_RETURN, <acción>, nil ) }
   endif
next
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Ultima tecla en un oGet
Posted: Thu Jun 15, 2006 07:28 PM

HOLA ANTONIO:
use el metodo que me sugieres para conocer la pulsacion del oget, pero no hace nada, es decir no ejecuta ninguna accion

Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Ultima tecla en un oGet
Posted: Thu Jun 15, 2006 07:37 PM

Hola Antonio

efectue el ejemplo que pusiste:
oGet5:bKeyDown:= {|nKey| if(nKey==VK_RETURN, MsgInfo("Accion"), Nil )}

obviamente en lugar del msginfo va un llamado de otra accion pero estoy probando..
el caso es que no ejecuta nada, que estare haciendo mal ?

gracias por tu ayuda
salu2

Posts: 219
Joined: Mon Dec 26, 2005 07:25 PM
Ultima tecla en un oGet
Posted: Thu Jun 15, 2006 08:53 PM

En teoría, oGet:nLastKey tiene el valor de la última tecla pulsada. Puedes intentar leerla llamando a una funcciion desde el VALID del oGet, pues, en teoría también, esas teclas hacen que salgas del GET. (la funcion tiene que devolver .T.)

Nos Gusta Programar
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Ultima tecla en un oGet
Posted: Tue Jun 20, 2006 07:14 PM

Hola antonio:
probe con la primera opcion pero no hace nada

oGet:bKeyDown:= {|nKey| if( nKey==VK_RETURN, Prueba(), nil ) }

probe la opcion de manuramos y asi funciona correctamente, usando la opcion VALID del oGet y validando posteriormente Lastkey gracias por su ayuda

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Ultima tecla en un oGet
Posted: Wed Jun 21, 2006 06:48 AM
Prueba este ejemplo:
#include "FiveWin.ch"

function Main()

   local oDlg, oGet, oBtn
   local lTest := .t.
   local nTest := 123, oTEST1
   local cTest := "ABC", oTEST2

   SET _3DLOOK ON

   DEFINE DIALOG oDlg TITLE "A simple GET" ;
      FROM 2, 2 TO 13, 40

   @ 10, 10 GET oTEST1 VAR nTest SIZE 120, 13 pixel OF oDlg RIGHT PICTURE "999.99";
      valid (oTEST1:Refresh(), .T.)

   @ 30, 10 GET oTEST2 VAR cTest SIZE 120, 13 pixel OF oDlg PICTURE "@! XXXXXXXXXX" color "N*/W";
      valid (oTEST2:Refresh(), .T.)

   oTEST2:bKeyDown = { | nKey | MsgInfo( nKey ) }

   @ 3, 4 BUTTON oBtn PROMPT "&Ok" SIZE 45, 12 OF oDlg ;
      ACTION ( oDlg:End(), MsgInfo( cTest ) ) DEFAULT

   @ 3, 14 BUTTON "&Cancel" SIZE 45, 12 OF oDlg ;
      ACTION ( oDlg:End(), MsgInfo( cTest ) )

   ACTIVATE DIALOG oDlg CENTERED

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion