Comunidad Gambas-es
[SOLUCIONADO] ¿Es posible evitar que ValueBox visualice el signo "-"? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: General (https://gambas-es.org/forumdisplay.php?fid=4)
+--- Tema: [SOLUCIONADO] ¿Es posible evitar que ValueBox visualice el signo "-"? (/showthread.php?tid=403)



¿Es posible evitar que ValueBox visualice el signo "-"? - gambafeliz - 10-05-2021

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.


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - tincho - 10-05-2021

(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.


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - gambafeliz - 11-05-2021

(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


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - tincho - 11-05-2021

(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.


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - gambafeliz - 12-05-2021

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.


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - tincho - 12-05-2021

(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.


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - Shordi - 12-05-2021

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...


RE: ¿Es posible evitar que ValueBox visualice el signo "-"? - gambafeliz - 12-05-2021

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