Programación General > Visual Basic para principiantes

 Utilización de comando TIMER VB6

(1/1)

ganitomaster:
Hola bueno les traigo una consulta ... necesito utilizar el comando TIMER , para hacer que un label apareza y desparezca cada cierto intervalo de tiempo. pero el problema es que cuando asigno el TIMER se cierra el formulario completo y yo solo necesito que se cierre el label cada cierto intervalo de tiempo.


muchas gracias . espero alguien pueda guiarme con este comando

cpmario:
En una forma coloca un timer con nombre Timer1 y con su propiedad Interval = 1000 y una etiqueta con nombre Label1
Coloca el siguiente código en el evento timer


--- Código: Text ---Private Sub Timer1_Timer()    Static blnShowLabel As Boolean    If blnShowLabel Then        Label1.Visible = True        blnShowLabel = False    Else        Label1.Visible = False        blnShowLabel = True    End If    DoEventsEnd Sub Puedes activar o desactivar el Timer con la propiedad enabled


--- Código: Text ---     Timer1.enabled = false 
 :comp:

ganitomaster:
gracias por tu respuesta ahora quede un pco mas claro muchas gracias .. probare como me fue y te contare que tal   :D

Nebire:
puedes abreviar un poco el código que te señala cpmario, supongo que todavía serás capaz de entenderlo:


--- Código: Visual Basic --- Private Sub Timer1_Timer()    Static blnShowLabel As Boolean        blnShowLabel = not blnShowLabel     Label1.Visible = blnShowLabel     DoEventsEnd Sub   Recuerda que aquí timer1 es un control no la instrucción Timer

Para hacer algo parecido con la instrucción Timer el código sería:

--- Código: Visual Basic --- private Periodo as integer  ' un valor menor de 86401 (segundos de 1 día) '  al cruzar la medianoche, mientras se ejecuta esta función la llamada fallará, si no se controla... es un ejercicio para el interesado controlar dicha situaciónprivate sub AlterarModo     Static blnShowLabel As Boolean    dim crono as long        crono= Timer     do         doevents    loop while (timer - crono) < periodo    blnShowLabel = not blnShowLabel     Label1.Visible = blnShowLabel end sub ' Este código es equivalente al anterior pero que desactiva el timer tras su ejecuciónPrivate Sub Timer1_Timer()    Static blnShowLabel As Boolean        blnShowLabel = not blnShowLabel     Label1.Visible = blnShowLabel     timer1.enabled=false                          ' esto hace que sea idéntico a la rutina anteriorEnd Sub ' la llamada de uno u otro método son equivalentes, aunque el resultado es distinto, ya que el timer es asíncrono.public sub Micodigo   'algún código   ' ..............    call  AlterarModo    timer1.enabled= true          ' aquí se activa el timer, pero se contínua 'al timepo' con la siguiente línea  ' más código  ' .......................end sub ' si necesitáramos que el timer se comportara de forma síncrona como sucede con la función tendríamos que ponerle una trampa.public sub Micodigo   'algún código   ' ..............    call  AlterarModo    timer1.enabled= true    do                                               ' aquí el se espera hasta que el timer se apague antes de continuar con la siguiente línea, por tanto se comporta igual que la llamada a 'AlterarModo'        doevents    loop while timer1.enabled = true  ' más código  ' .......................end sub  
Sin embargo para hacer 'parpadear' un control conviene que sea un control timer, precisamente porque es asíncrono y la ejecución continúa...
Por último recordarte que el timer se utiliza con milisegundos y su valor máximo es aproximadamente 1 minuto por lo que habrás de utilizar un multiplicador de frecuencia para valores mayores... la función timer trabaja con segundos y su valor expresa los segundos que han pasado desde la medianoche por eso después de 86399 pasa a 0. si un período a controlar es 400 y se invoca después del segundo 86001 no fncionará ya que nunca se dará la condición (timer - puntoDeInicio) > periodo

Navegación

[0] Índice de Mensajes

Ir a la versión completa