Problema de código simple!!
Tengo un array de 5 posiciones. Y en esas cinco posiciones quiero meter aleatoriamente un numero del 1 al 4 cada segundo con un timer.
Mi problema es que con este codigo adjunto sólo me llena la posicion 0 dl array!! Q HAGO????
Private Sub timer_Timer()
Dim mas_peke As Integer
Dim mas_grande As Integer
Dim i As Integer
Dim anums(5)
mas_grande = 4
mas_peke = 0
timer.Enabled = True
For i = 0 To UBound(anums)
'while i < mas_grande si hago esto me salen los 5 de golpe y kiero cada segundo uno!!
timer.Enabled = True
Randomize
anums(i) = Int((mas_grande - mas_peke) * Rnd + mas_peke)
Print (i); (anums(i))
'i = i + 1
Next i
End Sub
Mi problema es que con este codigo adjunto sólo me llena la posicion 0 dl array!! Q HAGO????
Private Sub timer_Timer()
Dim mas_peke As Integer
Dim mas_grande As Integer
Dim i As Integer
Dim anums(5)
mas_grande = 4
mas_peke = 0
timer.Enabled = True
For i = 0 To UBound(anums)
'while i < mas_grande si hago esto me salen los 5 de golpe y kiero cada segundo uno!!
timer.Enabled = True
Randomize
anums(i) = Int((mas_grande - mas_peke) * Rnd + mas_peke)
Print (i); (anums(i))
'i = i + 1
Next i
End Sub
Tu código tiene los siguientes errores:
Primero, el al timer debes llamarlo timer1 y no Timer, ya que esta es una palabra reservada.
No conviente declarar variables dentro del evento timer ya que a cada segundo las vuelve a sobreescribir.
El evento timer.enabled=true debe ser llamado fuera del evento timer
al utilizar la sentencia Fort dentro del evento Timer, haces que se escriba todo de una sola vez cada segundo y nunca se termina.
Asignarle valores a las variables más grande y más peke debe ser fuera derl evento timer.
Acá va el código corregido que hace lo que necesitas:
Primero, al timer tienes que llamarlo Timer 1 y su propiedad Iinterval debes setearla a 1000.
Acá va el código:
Dim mas_peke As Integer
Dim mas_grande As Integer
Dim i As Integer
Dim anums(5)
Private Sub Form_Load()
mas_grande = 4
mas_peke = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Randomize
anums(i) = Int((mas_grande - mas_peke) * Rnd + mas_peke)
Print (i); (anums(i))
i = i + 1
If i = 5 Then
Timer1.Enabled = False
Exit Sub
End If
End Sub
Primero, el al timer debes llamarlo timer1 y no Timer, ya que esta es una palabra reservada.
No conviente declarar variables dentro del evento timer ya que a cada segundo las vuelve a sobreescribir.
El evento timer.enabled=true debe ser llamado fuera del evento timer
al utilizar la sentencia Fort dentro del evento Timer, haces que se escriba todo de una sola vez cada segundo y nunca se termina.
Asignarle valores a las variables más grande y más peke debe ser fuera derl evento timer.
Acá va el código corregido que hace lo que necesitas:
Primero, al timer tienes que llamarlo Timer 1 y su propiedad Iinterval debes setearla a 1000.
Acá va el código:
Dim mas_peke As Integer
Dim mas_grande As Integer
Dim i As Integer
Dim anums(5)
Private Sub Form_Load()
mas_grande = 4
mas_peke = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Randomize
anums(i) = Int((mas_grande - mas_peke) * Rnd + mas_peke)
Print (i); (anums(i))
i = i + 1
If i = 5 Then
Timer1.Enabled = False
Exit Sub
End If
End Sub
