by Maggiro » Tue Sep 29, 2015 2:08 am
Buenas Noches Amigos del Foro :
Estamos buscando un comportamiento GET que :
- Dado un campo GET numérico con decimales (0000.000)
- y YA habiendo escrito un número sobre él un numero cualquiera (1.525)
- si queremos volver para modificar su contenido (VK_UP)
- y el cursor se posiciona al inicio del GET
- al simple pulso de (punto decimal)
- la variable (1.525) cambie su valor a (0.525)
- posicione el cursor en el primer decimal
- y que el usuario siga modificando el contenido.
Creo que Aquí tenemos lo que necesitamos
Recordándoles que es preferible probar el TGET.PRG con una copia e incluirla en
vuestra aplicación:
en el método:
METHOD KeyChar( nKey, nFlags ) CLASS TGet
dentro de las variables locales, incluir la linea:
LOCAL mivar1
Siguiendo lineas abajo, encontrar el case:
case nKey >= 32 .and. nKey < 256
En este CASE, se encuentra la siguientes lineas:
if ::oGet:Type == "N" .and. ( Chr( nKey ) == "." .or. Chr( nKey ) == "," )
::oGet:ToDecPos()
else
...
endi
y aqui se reemplazan, en su parte pertinente, por las siguientes lineas:
if ::oGet:Type == "N" .and. ( Chr( nKey ) == "." .or. Chr( nKey ) == "," )
IF ALLTRIM(STR(::npos))='1'
mivar1=::oGet:buffer
mivar1=VAL(mivar1)
IF mivar1>0
mivar1=mivar1-INT(mivar1)
ENDI
mivar1=STR(mivar1)
::oGet:VarPut( VAL(mivar1) )
::Refresh()
ENDI
::oGet:ToDecPos()
else
...
endi
Pruébenlo y veamos como se comporta.
Saludos
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú