Timer y progreso en milisegundos

14/06/2004 - 16:01 por Adriano DAmbra | Informe spam
Hola, quiero hacer un timer en un form para que vaya controlando en forma
descendente que se transcurra un determinado tiempo y cuando esto ocurra que
se detenga la aplicación. He visto una respuesta de Fernando con
Application.OnTime que voy a probar . Pero por otro lado, ya había probado
TimeValue y no me deja agregar tiempo en milisegundos. También probé la
función Timer con DoEvents en un ciclo, pero me toma el control, es decir
que justamente no me muestra la aplicación mientras está en el ciclo del
pooling del reloj.

Saludos.
Adriano.

Preguntas similare

Leer las respuestas

#1 LJS
14/06/2004 - 19:23 | Informe spam
Prueba el OnTime, puede funcionarte bien, con el OnTime
puedes simular un control Timer de VB6.0




Hola, quiero hacer un timer en un form para que vaya


controlando en forma
descendente que se transcurra un determinado tiempo y


cuando esto ocurra que
se detenga la aplicación. He visto una respuesta de


Fernando con
Application.OnTime que voy a probar . Pero por otro lado,


ya había probado
TimeValue y no me deja agregar tiempo en milisegundos.


También probé la
función Timer con DoEvents en un ciclo, pero me toma el


control, es decir
que justamente no me muestra la aplicación mientras está


en el ciclo del
pooling del reloj.

Saludos.
Adriano.


.

Respuesta Responder a este mensaje
#2 Adriano DAmbra
14/06/2004 - 23:35 | Informe spam
Para hacer el timer de la aplicación e ir mostrando el reloj en unos labels
de un form, me funcionó OnTime perfectamente.
Pero para otra parte de la aplicación, en donde quiero que un gráfico se
vaya llenando en forma animada, quiero hacer pausas en el proceso pero no
encontré forma de hacerlo si no es por segundos (que es muy lento).
Necesitaría fraccionar los wait o los OnTime a menos de un segundo.
¿Se puede?

Saludos.

Adriano D'Ambra
An. Informática - Microsoft Office Specialist
Coord. Dpto. de Informática
Universidad FASTA



"LJS" escribió en el mensaje
news:1c2d201c45234$58502180$
Prueba el OnTime, puede funcionarte bien, con el OnTime
puedes simular un control Timer de VB6.0




Hola, quiero hacer un timer en un form para que vaya


controlando en forma
descendente que se transcurra un determinado tiempo y


cuando esto ocurra que
se detenga la aplicación. He visto una respuesta de


Fernando con
Application.OnTime que voy a probar . Pero por otro lado,


ya había probado
TimeValue y no me deja agregar tiempo en milisegundos.


También probé la
función Timer con DoEvents en un ciclo, pero me toma el


control, es decir
que justamente no me muestra la aplicación mientras está


en el ciclo del
pooling del reloj.

Saludos.
Adriano.


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
15/06/2004 - 07:37 | Informe spam
hola, Adriano !

... que un grafico se vaya llenando en forma animada
... hacer pausas en el proceso pero no encontre forma de hacerlo si no es por segundos (que es muy lento).
... fraccionar los wait o los OnTime a menos de un segundo.
¿Se puede?



haciendo una llamada a las API's de windows [kernel] podrias usar la funcion 'Sleep' [similar al 'Wait']
[encontraras la informacion =>traducida al español<= en...]
WD97 Como Implementar un Retardo en Visual Basic para Aplicaciones
http://support.microsoft.com/suppor...2/1/50.asp

si la necesitas 'public' o 'private'... es [opcional y] decision tuya. p.e. [Public/Private] Declare ... etc.
te expongo dos ejemplos al final
saludos,
hector.
- en un modulo de codigo 'normal' --
Private Declare Sub Retardo Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Sub RellenoPorEtapas()
Dim Siguiente As Integer
For Siguiente = 1 To 15
Retardo 200 ' <= si pones 1000, 'equivale' a 1 segundo [mil milisegundos] ;) '
ActiveCell = Siguiente
ActiveCell.Offset(1).Select
Next
End Sub
Sub RellenoPorEtapasVariable()
Dim Siguiente As Integer, Segundos As Long
For Siguiente = 1 To 15
Segundos = Int((Rnd * 1000) + 1)
Retardo Segundos
ActiveCell = Siguiente
ActiveCell.Offset(1).Select
Next
End Sub
Respuesta Responder a este mensaje
#4 Adriano DAmbra
15/06/2004 - 16:49 | Informe spam
Gracias Héctor, lo pruebo y te contesto.
Luego te mando el resultado en una demo. Lo que hago es ir llenando una
celda (la que referencia el gráfico de barras) un valor hasta llegar al
valor final. Si uno hace un loop pero con retardos menores al segundo se
puede hacer que el gráfico se vaya llenando como una barra de progreso.

Saludos.

"Héctor Miguel" escribió en el mensaje
news:#
hola, Adriano !

> ... que un grafico se vaya llenando en forma animada
> ... hacer pausas en el proceso pero no encontre forma de hacerlo si no


es por segundos (que es muy lento).
> ... fraccionar los wait o los OnTime a menos de un segundo.
> ¿Se puede?

haciendo una llamada a las API's de windows [kernel] podrias usar la


funcion 'Sleep' [similar al 'Wait']
[encontraras la informacion =>traducida al español<= en...]
WD97 Como Implementar un Retardo en Visual Basic para Aplicaciones
http://support.microsoft.com/suppor...2/1/50.asp

si la necesitas 'public' o 'private'... es [opcional y] decision tuya.


p.e. [Public/Private] Declare ... etc.
te expongo dos ejemplos al final
saludos,
hector.
- en un modulo de codigo 'normal' --
Private Declare Sub Retardo Lib "kernel32" Alias "Sleep" (ByVal


dwMilliseconds As Long)
Sub RellenoPorEtapas()
Dim Siguiente As Integer
For Siguiente = 1 To 15
Retardo 200 ' <= si pones 1000, 'equivale' a 1 segundo [mil


milisegundos] ;) '
ActiveCell = Siguiente
ActiveCell.Offset(1).Select
Next
End Sub
Sub RellenoPorEtapasVariable()
Dim Siguiente As Integer, Segundos As Long
For Siguiente = 1 To 15
Segundos = Int((Rnd * 1000) + 1)
Retardo Segundos
ActiveCell = Siguiente
ActiveCell.Offset(1).Select
Next
End Sub

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida