FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con SETKEY
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 01:13 AM

Hola Amigos,

Pretendo usar la función SETKEY() y lo hace bién al definirla así:

oDlg:bGotFocus:= SetKey( VK_F12, { |nKey| CopioRegistro(recno()) })

Esto lo uso en un diálogo NOWAIT y por eso, para que cuando el diálogo no esté en foco, puse:

oDlg:bLostFocus:=SetKey( VK_F12, nil )

Pero no resulta como esperaba ya que al abrir este diálogo NOWAIT, no se el porque ejecuta al instante mi función CopioRegistro(recno()) que debiera ejecutarse únicamente al presionar F12.

Si le saco el:

oDlg:bLostFocus:=SetKey( VK_F12, nil ),

Ahí funciona bién la F12 pero queda asignada permanentemente a esa función y mi deseo es que cuando se cierre el dialog NOWAIT o este pierda el foco, esta tecla F12 no haga nada.

Gracias.

Rolando :D

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 01:33 AM
es comun que esto suceda... creo que a todos nos a pasado alguna vez oDlg:bLostFocus y oDlg:bGotFocus, se les debe asignar bloques de codigo, por eso tiene esa "b" adelante...
hazlo asi:
oDlg:bGotFocus  := {|| SetKey( VK_F12, { |nKey| CopioRegistro(recno()) }) } 
oDlg:bLostFocus := {|| SetKey( VK_F12, nil ) }
Posts: 189
Joined: Sun Jul 08, 2007 01:46 AM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 01:36 AM

Rolando:

Quizás puedas hacerlo en el Valid de dialogo.
Valid(SaleDialogo())

Function SaleDailogo()
SetKey( VK_F12, nil )

Return(.t.)

Espero te sirva.

Saludos

Ruben Fernandez.

Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 02:33 AM

Gracias por responder,

Daniel, si hago como tu dices, la F12 no es detectada. No se si será porque todos los dialogs que uso son NOWAIT o qué pero no funciona como tu dices.

Rubén, lo cambié en el valid y funciona bién cuando se cierra ese dialog la tecla F12 queda "NIL", el problema está en que no puedo hacer que quede "NIL" cuando el dialog piede el foco.

Gracias.

Rolando :D

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 02:40 AM

tienes que declararla fuera del oDlg:bGotFocus y dentro del oDlg:bGotFocus
SetKey( VK_F12, { |nKey| CopioRegistro(recno()) })

y

oDlg:bGotFocus := {|| SetKey( VK_F12, { |nKey| CopioRegistro(recno()) }) }

Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Ayuda con SETKEY
Posted: Thu Oct 16, 2008 03:08 AM

No puedo hacerlo funcionar, pero lo solucioné asignando la tecla F12 a:

oDlg:bKeyDown := {|nK|if(nK<>27, (if(nk<>VK_F12 , (if(ControlU(nk , @oIcon) , oDlg:refresh() , )) ,;
copioregistro(recno())) ) , oDlg:end() )}

y así se acabó my problem.

Saludos

Rolando :D

Continue the discussion