Visual Basic - timer y random

Life is soft - evento anual de software empresarial
 
Vista:

timer y random

Publicado por caliria (4 intervenciones) el 08/11/2006 00:20:13
Hola, me gustaria saber si alguien me puede ayudar!

tengo que hacer un programa en el que tengo 3 labels, y cuando pulso el cmdcalcular, tiene que durante un tiempo aleatorio, ir cambiando el color de los label.
la verdad es que solo hace dos semanas que estoy con VB y no tengo idea de cmo hacer eso; de momento tengo hecho esto:

Private Sub Command1_Click()
Dim i As Integer
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
End
End Sub
Private Sub Timer1_Timer()
Dim aleatori As Integer
Randomize 'Timer1
Max = 100
Min = 1
aleatori = Int((Max - Min + 1) * Rnd + Min) + 1

Select Case (i)
Case (1)
Label1.BackColor = RGB(255, 0, 0)
Label2.BackColor = RGB(255, 255, 255)
Label3.BackColor = RGB(255, 255, 255)

Case (2)
Label1.BackColor = RGB(255, 255, 255)
Label2.BackColor = RGB(255, 0, 0)
Label3.BackColor = RGB(255, 255, 255)
Case (3)
Label1.BackColor = RGB(255, 255, 255)
Label2.BackColor = RGB(255, 255, 255)
Label3.BackColor = RGB(255, 0, 0)
End Select
End If
End Sub

pero no se como hacer el trozo ese del timer y del rnd, por si alguien me puede ayudar, se lo agradeceria!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:timer y random

Publicado por El Viejo Charles (262 intervenciones) el 08/11/2006 07:55:49
Esto debe servirte colega:

Private Sub Command1_Click()
If Timer1.Enabled = True Then
Timer1.Enabled = False
Else
Timer1.Enabled = True
End If
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Timer1.Interval = 1000 ''cada 1 segundo
End Sub

Private Sub Timer1_Timer()
Randomize
Label1.BackColor = RGB(Int((255 * Rnd) + 1), Int((255 * Rnd) + 1), Int((255 * Rnd) + 1))
Label2.BackColor = RGB(Int((255 * Rnd) + 1), Int((255 * Rnd) + 1), Int((255 * Rnd) + 1))
Label3.BackColor = RGB(Int((255 * Rnd) + 1), Int((255 * Rnd) + 1), Int((255 * Rnd) + 1))
End Sub

Suerte mi viejo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:timer y random

Publicado por caliria (4 intervenciones) el 08/11/2006 11:08:02
pos no se porque pero no me funciona
los label ni cmabian de color

todo el apartado que has puesto de los label no lo entiendo, pero no se podri ahacer tb con los case?? perdona por las molestias. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:timer y random

Publicado por Natalia Camino (88 intervenciones) el 08/11/2006 11:32:01
Es que os falta refrescar los labels al final del evento Timer:

Label1.Refresh
Label2.Refresh
Label3.Refresh
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:timer y random

Publicado por caliria (4 intervenciones) el 08/11/2006 11:38:42
pero asi, me salen los cuadros de colores, y se supone que tiene que haber uno rojo y los otros blancos
,no se si me explico
muchas grqacias a los dos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:timer y random

Publicado por Natalia Camino (88 intervenciones) el 08/11/2006 12:01:02
La idea del Select era la buena, poned este código:

Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static i As Integer
i = i + 1
If i = 4 Then i = 1
Select Case i
Case 1
Label1.BackColor = RGB(255, 0, 0)
Label2.BackColor = RGB(255, 255, 255)
Label3.BackColor = RGB(255, 255, 255)

Case 2
Label1.BackColor = RGB(255, 255, 255)
Label2.BackColor = RGB(255, 0, 0)
Label3.BackColor = RGB(255, 255, 255)
Case 3
Label1.BackColor = RGB(255, 255, 255)
Label2.BackColor = RGB(255, 255, 255)
Label3.BackColor = RGB(255, 0, 0)
End Select
Label1.Refresh
Label2.Refresh
Label3.Refresh
End Sub

Espero que así os funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:timer y random

Publicado por caliria (4 intervenciones) el 08/11/2006 13:05:31
Muchas gracias. ahora si que funciona
solo me falta veriguar, como hacer que se pare! jejeje
Es decir yo pulso comand1 cambia lo de los colores, pero en un tiempo, aleatorio, se tinee que para encima de un label
muchas graciasssss^^
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar