Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Timer y progreso en milisegundos

226 views
Skip to first unread message

Adriano D'Ambra

unread,
Jun 14, 2004, 10:01:52 AM6/14/04
to
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.


LJS

unread,
Jun 14, 2004, 1:23:44 PM6/14/04
to
Prueba el OnTime, puede funcionarte bien, con el OnTime
puedes simular un control Timer de VB6.0


>-----Mensaje original-----

>.
>

Adriano D'Ambra

unread,
Jun 14, 2004, 5:35:21 PM6/14/04
to
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" <anon...@discussions.microsoft.com> escribió en el mensaje
news:1c2d201c45234$58502180$a501...@phx.gbl...

Héctor Miguel

unread,
Jun 15, 2004, 1:37:37 AM6/15/04
to
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/support/kb/articles/E162/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

Adriano D'Ambra

unread,
Jun 15, 2004, 10:49:01 AM6/15/04
to
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" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:#jLagrpU...@TK2MSFTNGP10.phx.gbl...

0 new messages