TIMER en Visual Basic 6.0

Ma -  
 tomatefarcie -
Empiezo con VB y me gustaría saber cómo insertar una pausa en el código. Es decir, que el programa desarrollado espere un momento antes de continuar la ejecución de su código. ¿Podrías explicarme cómo usar los Timers?
De antemano, gracias.

6 respuestas

Polux31 Mensajes publicados 7219 Estado Miembro 1 204
 
Hola,

En el módulo de tu formulario, declaras una variable global booleana (por ejemplo: Private flagTimer As Boolean), así como esta función:

Private Declare Function GetTickCount Lib "kernel32" () As Long Public Sub xWait(ByVal MilsecToWait As Long) Dim lngEndingTime As Long lngEndingTime = GetTickCount() + (MilsecToWait) Do While GetTickCount() < lngEndingTime DoEvents Loop End Sub 


En el Form_Load del formulario, inicializas tu flag en False (p. ej.: flagTimer = False). Luego, en el evento Click de tu botón, combínalo así:

Private Sub Command1_Click() If flagTimer = False Then flagTimer = True ElseIf flagTimer = True Then flagTimer = False End If Call Timer1_Timer End Sub


Solo queda codificar el procedimiento del Timer usando un bucle while:

Private Sub Timer1_Timer() While flagTimer = True '1 - código para la consulta SQL '2 - código para el archivo Call xWait(3000) Wend End Sub 


Ánimo

;o)

polux
7
blurk Mensajes publicados 493 Fecha de registro   Estado Miembro 160
 
hola
el temporizador se encuentra en los componentes. Hacemos clic sobre él y lo
arrastramos a la hoja como todos los componentes
El temporizador tiene dos ajustes: activado/desactivado y periodo o frecuencia.
El temporizador emite impulsos a la frecuencia deseada
Si mal no recuerdo, es de 5 milisegundos a 1 segundo
Un doble clic en el icono del temporizador hace aparecer
la función ontimer que es uno de los métodos del objeto timer
allí se ejecuta el código que se elige en cada impulso
que emite el temporizador a la frecuencia deseada y solo si está "enabled"
Si el retraso de 5 milisegundos es demasiado largo, se pueden usar varios temporizadores, pero si es Windows 98 o 95, las prestaciones son muy limitadas. El temporizador es una buena solución junto a otras para que la interfaz no se bloquee mientras se ejecuta un largo procesamiento.
rtfm cordialmente
¤
5
Ma
 
Gracias por todo!
Cuando se abre un programa, siempre aparece una ventana con un título, el nombre del producto, la versión, la licencia,... que se abre primero. Me gustaría que en mi programa esa ventana se abra (esto está bien) pero que permanezca en la pantalla durante 5 segundos, por ejemplo (ahora se muestra y desaparece de inmediato). ¿Cómo se puede elegir ese tiempo?
¡Muchas gracias de antemano!
Ma.
1
Psykocrash
 
Cuando se abra tu ventana, inicias un temporizador con un intervalo de 5000 (equivalente a 5 segundos) cuya función es cerrar tu ventana.
0
tomatefarcie
 
en la pestaña splashscreen.vb (nombre por defecto) añade



'declaración de sleep()
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Me.Show()
Application.DoEvents()
'5000 para 5 segundos
Sleep(5000)
0
must41
 
aquí tienes la traducción: pon el intervalo del temporizador a 0 y cuando quieras activar el cronómetro asigna a interval otro valor, por ejemplo 1000 = 1 segundo, y en
private sub timer_timer ... end sub
pon un contador i = i+1 cuando el "i" alcance el valor que quieras, por ejemplo 10, asigna a interval otra vez cero
interval = 0 'detiene el contador y interval <> 0 lo dispara
1
DVPB
 
Hola,
estoy empezando con VB y me gustaría poder usar un temporizador para realizar una acción repetitiva.
En realidad quiero que el temporizador se active/desactive mediante un botón de modo que:
- mientras el botón esté activo, el temporizador debe ejecutar la misma acción (en realidad dos: ejecución de una consulta SQL, y luego la concatenación del resultado en un archivo CSV existente), luego volver a iniciar un conteo de 30 segundos, ejecutar la consulta, añadir su resultado al archivo, volver a iniciar el conteo, etc.
- si el botón está desactivado, el temporizador se detiene después de haber ejecutado la acción a la que está vinculado.

Concretamente, me cuesta entender cómo programar un temporizador así y qué hacer respecto a la concatenación de datos a un archivo ya existente.

Agradezco de antemano a todas las personas que tengan un poco de tiempo para ayudarme a resolver este problema.
1
Ma
 
Muchas gracias por vuestra ayuda, todo funciona como quería y creo haber entendido cómo funcionaban los temporizadores. Gracias a ustedes.
Gracias.

Ma.
0