No escribas en mayúsculas, es molesto
Tampoco es tan complicado de entender, hombre. Éste es tu código:
a = text1.text
While a < 10
text1.text = val (a) + 1
Wend
Le asignas a
a el valor de text1. Luego mientras
a sea menor de 10, pones que text1 sea
a + 1. No sé por qué razón usas
Val(), eso es para cadenas de caracteres, y
a es un entero (Integer)
. Sí que tiene sentido el
Val() en el timer.
Entonces, repites lo que hay dentro del
while infinitas veces, porque
a jamás cambia de valor, por tanto jamás vas a salir del bucle porque la condición es que
a sea 10 o mayor para que esto ocurra. O lo que es lo mismo, mientras
a < 10 repetirás eso, es decir, siempre, porque
a no cambia. Tampoco cambias el valor de
a en el
timer que tienes, que por cierto no le veo mucho sentido... posiblemente porque no entiendo qué pretendes hacer, cuál es el objetivo de tu código.
Un par de consejos: pon un
DoEvents dentro del bucle, porque sino se te quedará colgado el VB6 al entrar en el bucle, y además así te actualiza el
text1:
While a < 10
DoEvents
text1.text = val (a) + 1
Wend
También,
While-Wend está obsoleto, usa
Do While-Loop:
Do While a < 10
DoEvents
text1.text = val (a) + 1
Loop
Si cambiásemos el valor de a, sí que saldría del bucle (siempre y cuando eventualmente se deje de cumplir que
a < 10). Por ejemplo, esto ya no es un bucle infinito:
Do While a < 10
DoEvents
text1.text = val (a) + 1
a = a + 1
Loop
¿Está más claro ahora?