Problemas con edición

Post Reply
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Problemas con edición

Post by horacio »

Tengo el siguiente código

/******************/
Local nValor := 0
Local oGet
Local oDlg
Local lSalgo := .f.

Define Dialog oDlg From 10, 10 To 50, 180 Pixel Style nOr( WS_POPUP, WS_THICKFRAME )

@ 06, 05 Say 'Ingrese Valor' Of oDlg Size 50, 10 Pixel
@ 05, 40 Get oGet Var nValor Size 35, 10 Pixel Of oDlg Picture '999999.99'
oGet : bKeyDown := { | nKey | If( nKey == VK_RETURN, ( If( nValor != 0, ( lSalgo := .t., oDlg : End() ), BorraRubroDeCarga( oDlg, oGet, @lSalgo, @nValor ) ) ), If( nKey == VK_ESCAPE, BorraRubroDeCarga( oDlg, oGet, @lSalgo, @nValor ), ) ) }

Activate Dialog oDlg Centered Valid lSalgo
Return nValor


Function BorraRubroDeCarga( oDlg, oGet, lSalgo )

If( !MsgNoYes( ' ¿ Desea cancelar la operación ? ', 'Atención' ) )
oGet : SetFocus()
Return 0
End
lSalgo := .t.
oDlg : End()
Return 0

Si ingreso un valor = 0, el sistema me dice si quiero cancelar la operación. Si le digo que no e ingreso un valor # 0, supuestamente el programa debería validarme el get y continuar. Pero me vuelve a preguntar si quiero cancelar la operación. Si le digo que no y vuelvo a pulsar enter ahí si me lo valida. Espero haber sido claro. Que estoy haciendo Mal ????
Muchas gracias a todos
User avatar
jacgsoft
Posts: 96
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Post by jacgsoft »

asi deberia ser:

oGet : bKeyDown := { | nKey | If( nKey == VK_RETURN, ;
If( nValor != 0, (lSalgo:=.t., oDlg:End()), ;
BorraRubroDeCarga(oDlg, oGet,@lSalgo,@nValor)),nValor:=Val(Chr(nKey)) ) }


Jaime
Post Reply