Bug en mi programilla...¿Como solucionarlo?

Iniciado por ubetor^^, 21 Agosto 2006, 19:08 PM

0 Miembros y 1 Visitante están viendo este tema.

ubetor^^

Wenas, es mi 1º post en este subforo, :o como es evidente soy un Newbie. Hace unos días que empecé a programar, y weno practicando los ejemplos llegué a crear un programilla simple, pero se adapta a mis necesidades...excepto por el bug, xd.

Os explico, el programilla (Cliquéame v1.0, xd) trata sobre acertar un acertijo. Y como me gusta complicarme la vida, no e puesto un simple textbox en el que si das la respuesta correcta ya as terminado el programano nop...en el programa "incrusté" una calculadora (típica de newbie, xd). Por medio de la calculadora es como me gustaría validar la respuesta. Es decir, siguiente el procedimiento "matemático que hay que seguir para resolver dicho acertijo.

Ejemplo: La calcu tiene 3 textbox (1. valor, 2º, y resultado). Bien pues quiero que cuando en el text1 y text2 el valor introducido por el usuario sea de "x", y que cuando cliquee sobre el botón de sumar que aparezca un label (label.visible=true).

El bug está en que da iwal que valores pongas que cuando cliquees sobre el botón de sumar te aparece el label diciendo que acertaste, xDD. Probé con esto:


Private Sub Command5_Click(Index As Integer)
If Text1(0) Or Text2(2) = 1 Then
Label9.Visible = True
Else
Label9.Visible = False
End If
End sub


Pero de todas todas acaba apareciendo el dichoso label como ya comenté... Y además el VB no carga el resto del código que hay puse en el command5...

Después se me ocurrió utilizar un If para cuando el Resultado (text3), sea el del acertijo ("xx") que mostrase el label. Claro, esto funcionaba, pero el problema está en que el usuario puede introducir un valor cualquiera más otro valor cualquiera y que el resultado sea el mismo ("xx"). Y esto deje de pensarlo, porque no tiene salida.

Lo que si creo que se puede arreglar es el code que posteé más arriba. El código completo del comando sumar es este:


Private Sub Command5_Click(Index As Integer)
If Text1(0) Or Text2(2) = 1 Then
Label9.Visible = True
Else
Label9.Visible = False
End If
If Text1(0).Text = 1 Then
Label5.Caption = "¡CORRECTO!"
Label5.BackColor = vbGreen
Else
Label5.Caption = "Inténtalo de nuevo..."
Label5.BackColor = vbRed
End If
If Text2(2).Text = 1 Then
Label6.Caption = "¡CORRECTO!"
Label6.BackColor = vbGreen
Else
Label6.Caption = "Inténtalo de nuevo..."
Label6.BackColor = vbRed
End If
Text3(1).Text = Val(Text1(0).Text) + Val(Text2(2).Text)
End Sub


Dejo el enlace para que os podáis descargar mi programilla (Cliqueame v1.0) .Por si alguna empresa decide comprármelo  ;D

http://www.flypicture.com/?display=updone&id=r9H2m6nY

Weno, pues ai alguien sabe donde está el fallo le agradecería muxo que me lo dijera. Salu2!

CeLaYa

el link de tu programa no funciona. corrigelo para poder ver como esta tú programa
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

ubetor^^

Si funciona. Solo que una vez abierto el link tienes que darle a "Download file". Salu2

ReViJa

No mandes el .exe o como quieres que veamos el código.

Otro detalle, una calculadora no acepta espacios ni otros caracteres que no sean de calculo.

ubetor^^

#4
No sabía que el código completo del programa os pudiese ayudar a resolver esto. Disculpas...


http://www.flypicture.com/?display=updone&id=r9Hxm6rZ

CitarOtro detalle, una calculadora no acepta espacios ni otros caracteres que no sean de calculo.

No entiendo. A que te refieres? A mi el VB no me dio ningún error  :huh:




sircid

#5
If Text1(0) Or Text2(2) = 1 Then
Label9.Visible = True
Else
Label9.Visible = False
End If


Siempre se cumplirá esa condicion porque no has específicado el contenido de Text1(0)

If Text1(0) = 1 Or Text2(2) = 1 Then
Label9.Visible = True
Else
Label9.Visible = False
End If


El primer fallo que encontre... seguiré mirando el code.

If Text1(0).Text = 1 Then
Label5.Caption = "¡CORRECTO!"
Label5.BackColor = vbGreen


Si no añades Label5.Visible = True el label nunca aparecerá por mucho que le cambies el contenido/color ^^.

Viendo el code, la respuesta a tu "adivinanza" es el primer valor 1 el segundo valor 1. Quieres que el Label9 ("Cliquea AQUÍ y mira por pantalla si a aparecido la solución") que aparezca sólo cuando se haya encontrado la solución verdad?

PD: Tu programa y tu explicación es una liada xDD no me enterede nada jaja.

ubetor^^

Respondiendo a tu pregunta...ahora el label ya no aparece con cualquier respuesta. Pero si que aparece si en alguno de los textbox está el 1. Y yo quiero que aparezca cuando el 1 esté en los dos textbox (cuando la respuesta al acertijo sea la correcta, xd) 

CitarSi no añades
Código:
Label5.Visible = True
el label nunca aparecerá por mucho que le cambies el contenido/color ^^.

Se me paso  ;D Lo tuve que cambiar sin querer, xd

Citar
PD: Tu programa y tu explicación es una liada xDD no me enterede nada jaja.

Si, me líe un poco con la explicación, xd...aunque nosé si ya comenté que el programa no es nada serio, tan solo lo hice para seguir los ejercicios expuestos en un manual de VB que estoy leyendo, xd

Gracias por responder, haber si saben como hacer para que aparezcar el label9 de la forma que comenté.

foobar


ubetor^^

No, todavía persiste si es a lo que te refieres...

ubetor^^

#9
Citar- El operador lógico And (y):

El operador And (y) combina dos o más condiciones simples y produce un resultado verdadero sólo
si todos los operando son verdaderos.

Operando 1 and Operando 2-Valor
True True =True
True False =False
False True =False
False False =False

Acabo de saber qué es. Y efectivamente había que utilizar este operador. De la misma manera que con los ejemplos "true-false" sería con mi caso. De manera que el code quedaría de la siguiente forma:

Text1(0) And Text2(2) = 1 Then
Label9.visible= true
Else
Label9.visible= false
End if


Gracias de todos modos....salu2