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