https://foro.gambas-es.org/viewtopic.php?f=5&t=1172
-----------------------------------
ivanovichenco
Viernes, 03 Diciembre 2010, 00:18

Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Me entretuve con este juego que lo había hecho en c++ y ahora en gambas para dejar herencia
pero tengo el problemita que cuando no se inserta ningún numero me marca error y no se como evitarlo, aunque por defecto el textbox1="0" , he tratado de varias maneras y sigue siendo error.
Una ayuda por favor.
[url=http://dl.dropbox.com/u/13566068/Aciertalo.tar.gz]Enlacehttp://dl.dropbox.com/u/13566068/Aciertalo.tar.gz
[img]http://foro.gambas-es.org/files/images/1100/pantallazo_5_1291328139_404891.png[/img] 
[code linenumbers=false syntax=gambas]
' Gambas class file
'En este juego el computador genera un numero aleatorio de 1 a 100
'y nosotros debemos acertarlo
'declaramos las variables que usaremso en nuestro progrma
PUBLIC MiNumero AS Integer    'el numero que nosotros escribimos
PUBLIC RamNumero AS Integer  'el numero al azar que escoge el computador
PUBLIC Contador AS Integer  'el contador de intentos

PUBLIC SUB Form_Open()
'cuendo se ejecute la aplicacion abre la ventana en el centro
ME.Center
Contador = 0
TextBox1.Text = "0"
'Cuando se abra la aplicacion el boton Reinicio no se ve
ButtonReinicio.Visible = FALSE
END

PUBLIC SUB ButtonOK_Click()
'Cada vez que hacemos clic en el boton OK se incrementa el contador de intentos 
Contador = Contador + 1
'asignamos valor numerico al textbox y le asignamos este valor a la variable MiNumero
MiNumero = Val(TextBox1.text)
'AQUI TENGO EL PROBLEMA, ME SALE ERROR SI EL NUMERO ES CERO O NADA 
'AUNQUE LE HE ASIGNADO EL 0 AL TEXTBOX
IF Val(MiNumero) = 0 THEN 
TextBox2.Text = "Por favor ingresa un numero"
ENDIF 
IF MiNumero < RamNumero THEN
TextBox2.Text = "Tomaste el numero " & MiNumero & " y es menor"
ENDIF 

IF MiNumero > RamNumero THEN
TextBox2.Text = "Tomaste el numero " & MiNumero & " y es mayor"
ENDIF 

IF MiNumero = RamNumero THEN
TextBox2.Text = "Has tomado el numero " & MiNumero & " y es igual"
ButtonReinicio.Visible = TRUE
ENDIF 

TextBox1.SetFocus
TextBox3.Text = Contador
END

PUBLIC SUB ButtonInicio_Click()
ButtonOK.Visible = TRUE
ButtonInicio.Visible = FALSE
ButtonReinicio.Visible = FALSE
TextBox1.Visible = TRUE
Label1.visible = TRUE
RamNumero = Int(Rnd(1, 100)) 
TextBox1.SetFocus
END

PUBLIC SUB ButtonReinicio_Click()
ButtonOK.Visible = TRUE
ButtonInicio.Visible = FALSE
TextBox1.Visible = TRUE
Label1.visible = TRUE
RamNumero = Int(Rnd(1, 100)) 
TextBox1.SetFocus
ButtonReinicio.Visible = FALSE
Contador = 0
TextBox1.Text = "0"
TextBox1.SetFocus
TextBox3.text = "0"
END

[/code]


-----------------------------------
jsbsan
Viernes, 03 Diciembre 2010, 01:07

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Puede ser que el error te lo de en esta linea:

[code linenumbers=false syntax=gambas]TextBox3.Text = Contador[/code]

Yo lo convertia primero Contador en texto, asi:

[code linenumbers=false syntax=gambas]TextBox3.Text = str$(Contador)[/code]

Aqui tambien te puede dar problemas.
[code linenumbers=false syntax=gambas]MiNumero = Val(TextBox1.text)[/code]
[code linenumbers=false syntax=gambas]
IF Val(MiNumero) = 0 THEN[/code]

Mirate las ordenes:
Determinar que tipo de dato almacena una variable.

Por ejemplo, si:

IsFloat(expresión): devuelve TRUE si la expresión almacena un tipo de dato flotante

IsInteger(expresión): devuelve TRUE si la expresión almacena un tipo de dato entero

IsNull(expresión): devuelve TRUE si la expresión es NULA

IsNumber(expresión): devuelve TRUE si la expresión almacena un tipo de dato que sea numero

IsString(expresión): devuelve TRUE si la expresión almacena un tipo de dato string

Antes de evaluar: 
[code linenumbers=false syntax=gambas]MiNumero = Val(TextBox1.text)[/code]
y
[code linenumbers=false syntax=gambas]
IF Val(MiNumero) = 0 THEN[/code]


-----------------------------------
ivanovichenco
Viernes, 03 Diciembre 2010, 02:36

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Julio, gracias por la lección. Lo aplicare para ver como me va con el problemita. :roll:


-----------------------------------
shordi
Viernes, 03 Diciembre 2010, 07:17

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Las funciones IsXXXX() que menciona jsbsan quedan obsoletas en gambas 3. En su lugar tienes la función TypeOf(), que te devuelve la constante del tipo. No preguntes If istring(mivariable) , sino if typeOf(mivariable)=gb.string....

Es lo mismo en gambas 2, pero nadie sabe cuándo uno va a querer actualizar su aplicación a gambas 3 y no cuesta nada ser precavidos.


Suerte


-----------------------------------
ivanovichenco
Viernes, 03 Diciembre 2010, 18:35

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Gracias por la info.


-----------------------------------
jsbsan
Sabado, 04 Diciembre 2010, 02:12

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
:arrow: Habra que hacer un manual para la transicion entre gambas2 y gambas3, saber que cosas cambian... :cool: 


Saludos


-----------------------------------
ivanovichenco
Sabado, 04 Diciembre 2010, 17:24

Re: Como Evito Que Aparezca Este Error En Mi Aplicacion
-----------------------------------
Ojala alguno tenga esa intencion y lo haga. :roll:


