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

  1. 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
  2. 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
  3. 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
    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
    2. 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
  4. 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
  5. 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
  6. 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