Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como puedo hacer un retardo en VB 6.0

Estas en el tema de Como puedo hacer un retardo en VB 6.0 en el foro de Visual Basic clásico en Foros del Web. hola en c++ existe el delay para detener un quantun de tiempo un procedimiento y quisiera saber como puedo hacer eso en VB gracias...
  #1 (permalink)  
Antiguo 09/07/2006, 07:11
 
Fecha de Ingreso: mayo-2006
Mensajes: 20
Antigüedad: 17 años, 11 meses
Puntos: 0
Pregunta Como puedo hacer un retardo en VB 6.0

hola en c++ existe el delay para detener un quantun de tiempo un procedimiento y quisiera saber como puedo hacer eso en VB gracias
  #2 (permalink)  
Antiguo 09/07/2006, 09:12
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Usa un timer.

Si pones a buscar la palabra Timer en el foro de visual basic, te saldrán un montón de post que te pueden explicar esa duda.

Salu2
  #3 (permalink)  
Antiguo 09/07/2006, 21:29
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
La funcion Delay() de C++ seria utilizando la funcion Sleep() del API de Window:
Código:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #4 (permalink)  
Antiguo 10/07/2006, 02:56
Avatar de black_devil  
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 9 meses
Puntos: 1
hola, como dice jorevale debes usar el objeto timer en VB, en el cuadro de herramientas aparece como un icono de reloj, bueno para hacer un delay o retardo de tiempo, en un proyecto VB debes tener 2 form, 1 Label1 y 1 Timer (para el primer form) aca va el código, la idea es que el Form1 tenga un delay de x segundos antes de mostrar el form2...

Private Sub Form_Load()
lbltime.Visible = False 'el label los dejas invisible
lbltime.Caption = "3" '<----- ahi le colocas el tiempo que quieras para el delay
tmrtiempo.Interval = "1000" '<--- el intervalo de tiempo, 1000 equivale a
'un segundo ...
End Sub


Private Sub tmrtiempo_Timer() '<---- nombre del timer que le dí
lbltime.Caption = Val(lbltime.Caption) - 1
If lbltime.Caption = 0 Then
Form2.Show '<---- Llamada al form2
Unload Me
End If
End Sub

Saludos!!
  #5 (permalink)  
Antiguo 10/07/2006, 05:00
 
Fecha de Ingreso: mayo-2006
Mensajes: 13
Antigüedad: 17 años, 10 meses
Puntos: 0
Usar un timer es matar una mosca a cañonazos... bueno quiza no cañonazos pero si un martillo, la solucion de [EX3] es mucho ma eficaz
  #6 (permalink)  
Antiguo 10/07/2006, 11:55
Avatar de black_devil  
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 9 meses
Puntos: 1
Cita:
Iniciado por Damntry
Usar un timer es matar una mosca a cañonazos... bueno quiza no cañonazos pero si un martillo, la solucion de [EX3] es mucho ma eficaz
que quieres decir con eso?
  #7 (permalink)  
Antiguo 20/11/2010, 09:41
 
Fecha de Ingreso: octubre-2005
Mensajes: 76
Antigüedad: 18 años, 6 meses
Puntos: 5
Respuesta: Como puedo hacer un retardo en VB 6.0

Saludos

Del 2006 al 2010 (y finalizando ya) es un trecho de tiempo muy largo, pero debo anexar el escrito puesto que sin importar el tiempo, queda archivado a futuras busquedas, casualmente lo de EX3 me sirvio y era lo que estaba buscando para dar un leve retraso entre varios Insert Into por codigo a una tabla y la recogida de los datos de estos de CrystalRepor antes de caer al codigo que lo carga.

Para el amigo black_devil

black_devil, el Timer no sirve para el caso puesto que posiblemente el caso de ing_sistemas como mi caso, debia ser un retardo sin ejecutar nada dentro de este. No se puede colocar un Timer sin nada dentro de este y llamarlo puesto que al no tener nada en ninguno de sus eventos, VB no lo toma en cuenta por mas que se desee llamarlo.

Es un caso donde no se desea ejecutar nada en ese intervalo de tiempo del Timer, sino que solo y simplemente exista un "retardo de tiempo muerto" antes de luego pasar a la siguiente linea de codigo donde comience algun determinado proceso.

Eso es lo que quizo decir Damntry.
Dejo el comentario para completar el fin del post con la pregunta de black_devil dejada al aire por unos cuantos anios ya contestada. La solucion de EX3 es elegantemente corta y directa, una sola linea de codigo sin recurrir a ningun objeto, un colocar donde se necesite el Sleep(1000) o el tiempo requerido y listo, simple.

Saludos
  #8 (permalink)  
Antiguo 23/11/2010, 06:46
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Como puedo hacer un retardo en VB 6.0

Para gustos los colores.

Yo por ejemplo soy reacio a usar cualquier elemento externo si puedo evitarlo.
Ya sea un objeto que haya que cargar en componentes, ya sea un comando externo, como sería una llamada a API, cualquier cosa que use dlls que puedan no existir en el pc de destino, si puedo evitarla la evito.

Además las pruebas que he hecho con la función Sleep nunca me han resultado como esperaba, de modo que tengo mis propios "Sleeps" para usar cuando los necesito:

Para esperar segundos...

Código vb:
Ver original
  1. Sub Espera(ByVal Segundos As Long)
  2.   Dim Hora As Double
  3.   On Local Error Resume Next
  4.   Hora = Timer
  5.   Do Until Timer >= Hora + Segundos
  6.     DoEvents
  7.   Loop
  8. End Sub
'------------------------------------
y para esperar milisegundos...

Código vb:
Ver original
  1. Sub EsperaMiliseg(ByVal Tiempo As Double)
  2.   Dim HoraActual As Double
  3.   On Local Error Resume Next
  4.   HoraActual = Timer
  5.   Do Until Timer >= HoraActual + (Tiempo / 1000)
  6.     DoEvents
  7.   Loop
  8. End Sub
Y dependiendo del propósito, puedo usar un timer si lo veo conveniente y crear otro tipo de sleep.

Compañeros... la imaginación es nuestro límite.

Saludos.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #9 (permalink)  
Antiguo 10/04/2016, 17:09
 
Fecha de Ingreso: agosto-2005
Mensajes: 34
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Como puedo hacer un retardo en VB 6.0

Cita:
Iniciado por pkj Ver Mensaje
Para gustos los colores.

Yo por ejemplo soy reacio a usar cualquier elemento externo si puedo evitarlo.
Ya sea un objeto que haya que cargar en componentes, ya sea un comando externo, como sería una llamada a API, cualquier cosa que use dlls que puedan no existir en el pc de destino, si puedo evitarla la evito.

Además las pruebas que he hecho con la función Sleep nunca me han resultado como esperaba, de modo que tengo mis propios "Sleeps" para usar cuando los necesito:

Para esperar segundos...

Código vb:
Ver original
  1. Sub Espera(ByVal Segundos As Long)
  2.   Dim Hora As Double
  3.   On Local Error Resume Next
  4.   Hora = Timer
  5.   Do Until Timer >= Hora + Segundos
  6.     DoEvents
  7.   Loop
  8. End Sub
'------------------------------------
y para esperar milisegundos...

Código vb:
Ver original
  1. Sub EsperaMiliseg(ByVal Tiempo As Double)
  2.   Dim HoraActual As Double
  3.   On Local Error Resume Next
  4.   HoraActual = Timer
  5.   Do Until Timer >= HoraActual + (Tiempo / 1000)
  6.     DoEvents
  7.   Loop
  8. End Sub
Y dependiendo del propósito, puedo usar un timer si lo veo conveniente y crear otro tipo de sleep.

Compañeros... la imaginación es nuestro límite.

Saludos.
Muchas gracias por esa respuesta, era exactamente lo que buscaba :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:34.