Suma De Dos Números


Ir a la página 1, 2  Siguiente

Objetivo: Suma De Dos Números
Buenos días amigos.

Soy una persona que recientemente entré al maravilloso mundo de linux. También
acabo de terminar un curso de visual basic y me enteré que tenemos en linux
a gambas, lo bajé y lo instalé. Vino con varios programas, pero cuando intento ejecutarlos me aparece el siguiente mensaje:

"Cannot load class 'principal': Unable to load class file"

Como son personas con amplia experiencia en linux y gambas, quería saber
si me podían dar una mano para entender que es lo que sucede con mi instalación, porque aparte de este mensaje, hice un programa sencillo que vi en el curso,
solo introducir dos números en dos campos textbox y sumarlos en un tercer textbox al presionar un botón, pero me da el siguiente error:

"Type mismatch: wanted Number, got TextBox instead"

Tengo gambas 2.19, hice esa prueba en otra máquina con gambas 1.9.50 y sí funcionó; por lo tanto supongo que hay algo con mi instalación que, por mi poca experiencia
con estas herramientas, no se de que se trata.

Mucho agradecería su ayuda para más adelante poder aportar ejemplos para gambas.


Saludos desde Venezuela,

Rubén Darío.

Perfil MP  
Objetivo: Re: Suma De Dos Números
Pues seguramente sea por causa de la version de gambas que usas. Ahora mismo, la mas avanzada es Gambas3, pero segun parece no es la definitiva del todo, pero funciona. Hay un script que hizo jguardon para instalarlo automaticamente. No se exactamente donde (Creo que si pones "script" en busqueda, te salen los temas).

Ademas, en tu proyecto,a mi ahora me pasa lo mismo, conocer un resultado de un TextBox, y pasarlo a numero, pero claro, el valor del TextBox es texto, y no puedo sumar texto (logico)...

He probado con:

TextBox1.Text = Val(Label1.Text) 'Esto salio ya en un tema y lo he probado por probar realmente


Y el resultado de esto es que no sale nada en el Label1.

Luego despues pensé en:

Label1.Text = CString(CInteger(Label1.Text))


Pero me dice que necesita un Integer, pero le doy un String...

Salud!!

Perfil MP  
Objetivo: Re: Suma De Dos Números
Rubén, los ejemplos que vienen con gambas están guardados en una carpeta del sistema de sólo lectura. Cada vez que abras un ejemplo desde esa ubicación deberías guardarlo en una carpeta en la que tengas permiso de escritura (cualquier carpeta dentro de tu carpeta personal, que seguramente es algo como esto: /home/ruben ).

Respecto del error: "Type mismatch: wanted Number, got TextBox instead", el problema es que en gambas no existen las propiedades por defecto, es decir en VB podés hacer esto:

TextBox1 = "Pepe", porque la propiedad Text es la propiedad predefinida, por lo que es lo mismo que escribir: TextBox1.Text = "Pepe"

En gambas estás obligado a escribir:

TextBox1.Text = "Pepe"

Objetivo: Re: Suma De Dos Números
Uuuups!!!

Me he acordado del nombre del hilo, y buscando buscando lo he encontrado...

http://foro.gambas-es.org/viewtopic...ghlight=evaluar

Espero que te sirva!!

(a mi me esta costando...)

Perfil MP  
Objetivo: Re: Suma De Dos Números
Nunca había tenido que sumar números en gambas , pero me pareció interesante tu problema e hice una prueba que quizás te sirva.
Este es el código:
PUBLIC SUB Button1_Click()
DIM uno AS Float
DIM dos AS Float
DIM resultado AS Float
uno = Val(textbox1.text)
dos = Val(textbox2.text)
resultado = uno + dos
textBox3.text = resultado
END


O sea, creo tres variables del tipo float,uno es el primer sumando, dos es el segundo y resultado el idem.
Con Val convierto el "texto" a su expresión numérica y realiza la operación indicada (suma en este caso) Lo probé para multiplicación y división también. El resultado te lo muestra en el otro textbox. Espero te sirva.
Saludos
NOTA : si usas números con decimales debes usar la coma como separador, si usas el punto te dará un error.
Para Ansnarkista;
Citar:
He probado con:


TextBox1.Text = Val(Label1.Text) 'Esto salio ya en un tema y lo he probado por probar realmente


Y el resultado de esto es que no sale nada en el Label1.


Prueba lo siguiente:
label1.text=Val(textbox1.text)

Saludos

última edición por Dani26 el Jueves, 21 Octobre 2010, 01:43; editado 2 veces
Objetivo: Re: Suma De Dos Números
Con el codigo que has puesto al principio:

PUBLIC SUB Button1_Click()
DIM uno AS Float
DIM dos AS Float
DIM resultado AS Float
uno = Val(textbox1.text)
dos = Val(textbox2.text)
resultado = uno + dos
textBox3.text = resultado
END


Seria para tener dos TextBox no?Pero el problema es que queremos hacerlo con un solo TextBox (al menos yo...)

He probado el otro codigo:

label1.text=Val(textbox1.text)


y me pasa lo mismo....pero porque en el TextBox escribo 3+1 , por ejemplo.


Pfffff!!! me voy a poner con esto, porque la verdad es que no se como solucionarlo....probe otro codigo nuevo ayer mirando el hilo que postee, pero es que no lo entiendo...

Saluud!

Perfil MP  
Objetivo: Re: Suma De Dos Números
AnSnarkista:

Utilizar el componente gb.Eval, como el ejemplo que viene en gambas de la calculadora.


Saludos

Objetivo: Re: Suma De Dos Números
Fijate entonces en el ejemplo evaluator que viene con gambas. Ahí lo hace con un solo textbox para la fórmula, pero los números igual van en textbox diferentes.
Suerte

Objetivo: Re: Suma De Dos Números
Dani26 escribió: [Ver mensaje]
Fijate entonces en el ejemplo evaluator que viene con gambas. Ahí lo hace con un solo textbox para la fórmula, pero los números igual van en textbox diferentes.
Suerte

A ver, si ves el ejemplo, con las sentencias:
$hExpr.Text = txtExpr.Text
$hExpr.Compile
txtResult.Text = Str($hExpr.Value)

Evalua el contenido del txtExpr.Text ¿de acuerdo?
Si en vez de valer textExpr.Text="a * Cos(Rad(x)) + b * Sin(Rad(y))"
pones textExpr.Text="5+2" , y pulsa Enter o Return, te saldra "7" (compruebalo)

En el código del ejemplo "Evaluator" solo tienes que anular las lineas de las variables, ya que no te hacen falta para lo que quieres hacer:
' gambas class file
PRIVATE $hExpr AS NEW Expression
'no estamos interesados en variables (a,b,x,y)
'PRIVATE $cEnv AS NEW Collection

STATIC PUBLIC SUB Main()
DIM hForm AS Form
hForm = NEW FEval
hForm.Show
END

PUBLIC SUB btnUpdate_Click()
DIM cCol AS NEW Collection
IF $hExpr.Text <> txtExpr.Text THEN
$hExpr.Text = txtExpr.Text
ENDIF
' no usamos variable solo los numeros y operaciones que metemos en el txtExpr.Text
'cEnv.Compare = gb.Case
' $cEnv["a"] = Val(txtValueA.Text)
' $cEnv["b"] = Val(txtValueB.Text)
' $cEnv["x"] = Val(txtValueX.Text)
' $cEnv["y"] = Val(txtValueY.Text)
$hExpr.Compile
' no tenemos que evaluar ninguna variable (a,b,x,y)
' $hExpr.Environment = $cEnv
txtResult.Text = Str($hExpr.Value)
CATCH
txtResult.Text = Error.Text
END

PUBLIC SUB btnClose_Click()
ME.Close
END

y borrar del formulario lo que no nos hace falta:
Haciendo un ejemplo queda asi:
pantallazo_1287659648_120286

Nota importante:
Los ejemplos son ejemplos, hay que "desmenusarlos" (examinar, analizar, detallar, desglosar) para aprender de ellos.

Saludos

Objetivo: Re: Suma De Dos Números
Graciaaaas!!

He probado a activar gb.Eval, y luego simplemente en el evento click de un boton:

Label1.Text = Eval(TextBox1.Text)


Y funciona...he leido la documentacion del componente gb.Eval, pero no entiendo nada de nada...(¿Colecciones?)


Saluuud!!

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4415s (PHP: -70% SQL: 170%)
Consultas SQL: 45 - Debug off - GZIP Activado