Autor
|
Tema: Timer Grande (Leído 5,842 veces)
|
Meg
Desconectado
Mensajes: 462
|
Hola amigos, vereis es k tengo una duda resulta k qiero poner un timer k haga una determinada cosa cada 4 minutos pero el interval no me deja poner mas de 1 minuto K puedo hacer???
|
|
|
En línea
|
|
|
|
jrhomer
|
for i=0 to 3 if i= 3 then ' hacer cosas i=0 else i=i+1 end if next i
Declara i como pública y mete ese código en el TImer, así q cada 1 minutos hará eso... yo tp se pq solo (a priori) se puede poner 1 minuto (o lo q sea)
De modo que cada cada 4 minutos hará lo q kieras q haga y pondrá i=0 y como cada minuto i aumenta 1... pues en llegar al cuarto i=3, de modo que hará lo q haga y volverá a ponerla a i=0...
vamos es lo q se me ocurrio así d repente... espero q t sirva de ayuda.
|
|
|
En línea
|
ups!!
|
|
|
Slasher-K
Desconectado
Mensajes: 1.477
|
Poné el siguiente código en un módulo estándar, y crea un formulario que se llame frmMain. Este ejemplo utiliza la función SetTimer de la API para disparar un temporizador controlado mediante un bucle y la función Timer, de Visual Basic. Establece la constante TIMER_INTERVAL a la cantidad de segundos que quieres que sea el intervalo del temporizador. Esto es sólo de prueba, luego verás cómo manejas ese tema. Para iniciar el temporizador llama al procedimiento StartLongTimer, y para detenerlo a TerminateLongTimer. Cuando se cumpla cada intervalo de tiempo el temporizador lo notificará llamando al procedimiento LongTimer_Timer, y allí realizarás las tareas que necesites. Option Explicit
Const TIMER_INTERVAL = 86400 ' Intervalo del Timer, en segundos (le puse 1 día).
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private bTerminateTimer As Boolean
Sub Main() Call frmMain.Show End Sub
Sub StartLongTimer() bTerminateTimer = False ' Crea el temporizador del sistema que se ejecuta de ' forma asíncrona, de esta manera se evita el bloqueo ' del programa. ' Call SetTimer(0&, 0&, 1000&, AddressOf LongTimerProc) End Sub
Sub TerminateLongTimer() ' Establece la variable a verdadero para que ' se termine el procedimiento del temporizador. ' bTerminateTimer = True End Sub
Sub LongTimerProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Integer, ByVal dwTime As Long) Dim snTime!
Call KillTimer(0&, idEvent) ' Guarda el intervalo de tiempo actual. ' snTime = Timer Do While (Timer - snTime) < TIMER_INTERVAL ' Espera hasta que pase el tiempo especificado ' a menos que se cancele. ' If bTerminateTimer Then Exit Do DoEvents Loop If Not bTerminateTimer Then ' Si no se canceló el temporizador notifica del evento ' y vuelve a inicializar el contador. ' Call LongTimer_Timer Call StartLongTimer End If End Sub
Sub LongTimer_Timer() ' Este procedimiento se llamará cada vez que pase el lapso de tiempo ' configurado para el temporizador. ' ' Acá se puede hacer cualquier cosa que desee. ' Debug.Print "Timer interval: " & Time$ End Sub
Saludos.
|
|
|
En línea
|
A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
|
|
|
programatrix
|
O mas facil, le pones que valla contando cada vez que pasa por la funcion timer hasta 5 veces: Dim vez As Integer Private Sub Form_Load() Timer1.Interval = 60000 'El minuto Timer1.Enabled = True End Sub
Private Sub Timer1_Timer() If vez = "5" Then 'si ha pasado 5 veces es que ha pasado 5 minutos MsgBox "tiempo pasado" vez = 0 Else vez = vez + 1 End If End Sub Saludos
|
|
|
En línea
|
|
|
|
Meg
Desconectado
Mensajes: 462
|
Muxas gracias x vuestra ayuda ya lo logre
|
|
|
En línea
|
|
|
|
Martín Fierro
Desconectado
Mensajes: 381
Por crom!!!. Chiapas dedo izquierdo de wadalbertía
|
O mas facil, le pones que vaya contando cada vez que pasa por la funcion timer hasta 5 veces: Dim vez As Integer Private Sub Form_Load() Timer1.Interval = 60000 'El minuto Timer1.Enabled = True End Sub
Private Sub Timer1_Timer() If vez = "5" Then 'si ha pasado 5 veces es que ha pasado 5 minutos MsgBox "tiempo pasado" vez = 0 Else vez = vez + 1 End If End Sub Saludos Me gusto tu forma de solucionarlo, sin apis ni nada... Bien, yo no lo haría mejor..
|
|
|
En línea
|
Y no me importa nada..
|
|
|
zhidow
Desconectado
Mensajes: 6
|
Haciendo un programa (soy novato) me tope con el mismo problema , :p despues de pensar un rato , probe poniendo dentro del Sub timer. una condicion que diga, if (tiempo que tengo que esperar) = ( tiempo que necesito) then ''hacer la rutina else timer.enabled = false timer.enabled = true ''asi comieza el conteo de nuevo end sub
|
|
|
En línea
|
|
|
|
Ch3ck
Desconectado
Mensajes: 337
Elite
|
Pero para que desactivar y activar el timer si eso lo hace él vuelve ha iniciar el conteo solo (eso si lo que escribiste está dentro del timer)
|
|
|
En línea
|
|
|
|
zhidow
Desconectado
Mensajes: 6
|
SI disculpa aparte del codigo que si creas una variable tipo LONG, y le pones dim Tiempos as long (dentro del timer) tiempos = tiempos + 60000
cada vez que llega al timer y no se cumple el tiempo le agrega 60000 ( 1 Minuto más) asi hasta llegar a los minutos que le pusiste..
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
thead o timer?
Java
|
bash
|
3
|
2,643
|
9 Diciembre 2011, 14:42 pm
por bash
|
|
|
modificar un timer a nanosegundos
Programación Visual Basic
|
sesar58
|
5
|
4,077
|
26 Marzo 2013, 13:29 pm
por 79137913
|
|
|
Ajax: UpdatePanel Timer y Accordion
.NET (C#, VB.NET, ASP)
|
NetJava
|
1
|
2,262
|
3 Marzo 2013, 13:24 pm
por NetJava
|
|
|
ayuda timer
Programación Visual Basic
|
asdexiva
|
3
|
2,330
|
13 Marzo 2013, 00:01 am
por MCKSys Argentina
|
|
|
Duda con timer
.NET (C#, VB.NET, ASP)
|
llAudioslavell
|
8
|
4,061
|
3 Abril 2013, 13:26 pm
por Eleкtro
|
|