Visual Basic - Ayuda con el Timer

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con el Timer

Publicado por SOnia (31 intervenciones) el 26/04/2006 15:18:15
Hola a todos!!
tengo una duda sobre el time.. la verdad q nunca antes lo habia usado y no se como va,
os expongo mi problema.
Resulta que tengo un programa al que le kiero incorporar un salavapantallas, el salvapantallas ya lo he echo, per no se como hacer para q salte el salavpantallas si no se esta realizando ninguna tarea durante un min, es decir, si no pulso ninguna tecla o muevo el raton durante un min, kiero q salte mi salvapantallas , como sería el codigo??? gracias por todo!! y a todos!!
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

RE:Ayuda con el Timer

Publicado por SemperFiMXL (74 intervenciones) el 26/04/2006 23:19:11
Puede ser algo sencillo como esto ...
con el debug.print vemos las acciones en la ventana de Immediate Window ...
Esto lo aplicarias en cada una de las formas que utilices en tu proyecto ...

'''''''''''''

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Me.Timer1.Interval = 60000 ' reiniciamos el timer
Debug.Print "Form_KeyDown: " & KeyCode & ", Time: " & Time
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
Me.Timer1.Interval = 60000 ' reiniciamos el timer
Debug.Print "Form_KeyPress: " & KeyAscii & ", Time: " & Time
End Sub

Private Sub Form_Load()
Me.KeyPreview = True ' que nuestra forma reciba las teclas antes que los controles en ella puestos
Me.Timer1.Interval = 60000 ' iniciamos el timer (1 minuto)
Me.Timer1.Enabled = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Timer1.Interval = 60000 ' reiniciamos el timer
Debug.Print "Form_MouseMove ! " & ", Time: " & Time
End Sub

Private Sub Timer1_Timer()
' si el timer llega a ejecutarse, entonces habra transcurrido aprox 1 minuto
' sin oprimirse tecla alguna y sin mover el mouse en la forma ...
' aqui lanzas tu codigo del salvapantallas
Debug.Print "Timer !" & ", Time: " & Time
End Sub

''''''''''''''''
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

Correccion al Sub Timer1_Timer()

Publicado por SemperFiMXL (74 intervenciones) el 26/04/2006 23:27:20
Esto seria lo correcto (deshabilitar el timer antes de lanzar el salvapantallas) y habilitarlo de nuevo al retornar de dicho salvapantallas...
De lo contrario, mientres el salvapantallas este en ejecucion, el timer seguiria corriendo e intentando lanzar el salvapantallas cada minuto transcurrido ...

''''''''''''''

Private Sub Timer1_Timer()
' si el timer llega a ejecutarse, entonces habra transcurrido aprox 1 minuto
' sin oprimirse tecla alguna y sin mover el mouse en la forma ...
Debug.Print "Timer !" & ", Time: " & Time

Timer1.Enabled = False ' Deshabilitar el timer antes del salvapantallas

' aqui lanzas tu codigo del salvapantallas

Timer1.Enabled = True ' Rehabilitar el timer al retornar del salvapantallas

End Sub

''''''''''''''
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:Ayuda con el Timer

Publicado por CSO (28 intervenciones) el 26/04/2006 23:40:15
El timer funciona poniendole un intervalo de tiempo. En sus propiedades en Interval Ejm. Interval 1000 (1000 ekivale a 1 segundo)
te pondre un pekeño ejemplo comparativo de lo q kieres
en un form pones dos labels y un timer.
en propiedades del timer en pones : Interval 1000
y estos codigos:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = 0
End Sub

Private Sub Label1_Change()
If Label1.Caption = 10 Then
Label2.Caption = "Salvapantallas"
End If
End Sub

Private Sub Timer1_Timer()
If Timer1.Interval = 1000 Then
Label1 = Val(Label1) + 1
End If

End Sub
ejecuta el programa, si dejas kieto el raton dentro del Form veras q el label 1 cuenta segundos, si mueves el raton el label 1 se pone en 0.
Si dejas q cuente hasta 10 sin mover el raton el label dos te mostrara Salvapantallas.
Espero q lo entiendas
Saludos
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