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

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

(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.
Código:
Public Sub TextBox1_KeyPress()
Select Key.Text
Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ","
Case Else
Stop Event
End Select
End
Saludos.
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.
(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.
Pasaba por aquí y vi luz...
Prueba ésto:
Código:
Private obs As Observer
Public Sub form_Open()
obs = New Observer(ValueBox1.proxy) As "txtbox"
End
Public Sub txtbox_Keypress()
If Key.Code = Key["-"] Then Stop Event
End
El geshi también me odia...
Dios me ha contestado
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.
