Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[SOLUCIONADO]  ¿Es posible evitar que ValueBox visualice el signo "-"?
#1

Hola

Estoy haciendo una mini calculadora, se que podría hacerla con TextBox pero estoy usando ValueBox y todo va bien y funciona pero tengo que hacer un parche para que funcione cuando resto.

Yo asigno cada Text de los Button a Eval() pero mi problema visual es que todo bien con (*/+) pero cuando (-) me sale un número negativo y tengo que convertirlo a positivo para que todo funcione bien.

¿Es posible evitar que ValueBox use (-) de algún modo o voy a tener que usar TextBox para resolver todo y listo?

========== Solución ===============================

La solución es la da Shordi. ValueBox tiene integrado el signo negativo al pulsarlo dentro de su caja. Por lo tanto es imposible tener números positivos únicamente con este control. Pero con el código de Shordi captura el signo como si de un TextBox se tratara.
    ¡Gracias!
#2

(10-05-2021, 12:26)gambafeliz escribió:  ¿Es posible evitar que ValueBox use (-) de algún modo o voy a tener que usar TextBox para resolver todo y listo?

Creo que respondes solo. Smile Eval() trabaja con cadenas de texto que evalúa no con números.
Fíjate en este tema:
https://gambas-es.org/showthread.php?tid=385
Donde hice una calculadora justamente con la intención de aprender el uso de Eval() seguramente te resulte útil.
Saludos.
    ¡Gracias!
#3

(10-05-2021, 22:05)tincho escribió:  
(10-05-2021, 12:26)gambafeliz escribió:  ¿Es posible evitar que ValueBox use (-) de algún modo o voy a tener que usar TextBox para resolver todo y listo?

Creo que respondes solo. Smile Eval() trabaja con cadenas de texto que evalúa no con números.

No se como puedes saber que tengo algún problema de Eval(), en realidad no lo tengo. El problema esta en ValueBox que aunque esta bien que evite que los usuarios usen cualquier cosa para escribir y así hace. Pero en mi caso es una pequeña calculadora super básica que no admite números negativos y ese es el problema que la caja de ValueBox, si lo admite. Y ese es el problema. Que ValueBox mete visualmente el negativo y después yo lo tengo que corregir.

En resumen, hago la misma pregunta. Es posible capturar la entrada del signo negativo en la caja para que no la pueda ni pintar y tratar. Es una caja para número solo y únicamente positivos.

(10-05-2021, 22:05)tincho escribió:  Fíjate en este tema:
https://gambas-es.org/showthread.php?tid=385
Donde hice una calculadora justamente con la intención de aprender el uso de Eval() seguramente te resulte útil.
Saludos.
Gracias lo miraré aunque sospecho que no me es necesario

Mil gracias Smile
    ¡Gracias!
#4

(11-05-2021, 07:43)gambafeliz escribió:  Es posible capturar la entrada del signo negativo en la caja para que no la pueda ni pintar y tratar

En el valuebox no se como se hace porque el signo menos no es detectado por el evento keypress pero te dejo este ejemplo con un textbox.
GAMBAS
  1. Public Sub TextBox1_KeyPress()
  2.  
  3.   Select Key.Text
  4.     Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ","
  5.     Case Else
  6.       Stop Event


Saludos.
    ¡Gracias!
#5

Gracias tincho

Un código muy parecido he utilizado al final en mi TextBox.

Pero lo de ValueBox no te lo cuento lo afirmo, no es posible quitar el signo (-).

Por otra parte si te fijas lo que poder tener el signo (-) o no, debería ser una mejora en las propiedades de ValueBox, no siempre debería ser signos + / - también debería ser optativo.

Gracias, joven.
    ¡Gracias!
#6

(12-05-2021, 08:36)gambafeliz escribió:  Por otra parte si te fijas lo que poder tener el signo (-) o no, debería ser una mejora en las propiedades de ValueBox,

Si, tienes razón, debería poder cambiarse eso en las propiedades. Me fije en la versión 3.16 por si acaso y tampoco tiene algo que diga "solo valores positivos" o algo por el estilo.
Tal vez sea interesante que lo comentes en el bugtracker como una mejora. Yo una vez pedí que agregaran la propiedad de alineación en el valuebox y lo agregaron.
Saludos.
    ¡Gracias!
#7

Pasaba por aquí y vi luz...
Prueba ésto:

GAMBAS
  1.  
  2. Public Sub form_Open()
  3.     
  4.     obs = New Observer(ValueBox1.proxy) As "txtbox"
  5.     
  6.  
  7. Public Sub txtbox_Keypress()
  8.  
  9.  
  10.     If Key.Code = Key["-"] Then Stop Event
  11.  



El geshi también me odia...

No podemos regresar
    ¡Gracias!
#8

Dios me ha contestado Smile

Oye me parto con tu código en referencia a tu último código colgado por aquí, le estas cogiendo gustillo a proxy observo yo.

No lo he probado ni nada pero si funciona, como sabes me quito el sombrero, Sr.

Cry
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)