Control Timer

2,300 views
Skip to first unread message

rjh71

unread,
Aug 1, 2012, 10:42:42 AM8/1/12
to publice...@googlegroups.com
Saludos amigos foxeros,
les queria hacer una pregunta,
es la primera vez que voy a trabajar con el control timer,
de foxpro 2.6 me pase a vfp 9 en windows 7,
y como veran soy calichin en vfp 9,
lo que quiero hacer es poner el reloj en la barra de titulo de una ventana cualquiera osea de un form en el caption,
como podria hacer para que esto se pueda hacer,
es posible?,
quedo de ustedes y muchas gracias de antemano,
bendiciones.
rudolf heiner.

Luis Maria Guayan

unread,
Aug 1, 2012, 10:47:52 AM8/1/12
to publice...@googlegroups.com
Un ejemplo sencillo:

lo = CREATEOBJECT("MiForm")
lo.SHOW(1)

DEFINE CLASS MiForm AS FORM
  CAPTION = TRANSFORM(DATETIME())

  ADD OBJECT MiTimer AS TIMER WITH ;
    INTERVAL = 1000

  PROCEDURE MiTimer.TIMER
    THIS.PARENT.CAPTION = TRANSFORM(DATETIME())
  ENDPROC
ENDDEFINE

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

Richard Gaviria

unread,
Aug 1, 2012, 10:53:54 AM8/1/12
to publice...@googlegroups.com
Hace años que no uso un reloj, salvo en mi sistema de control de asistencia, aquí te dejo el código:

1-Pones un control timer
2-En el parámetro interval pones 1000 porque se mide en milisegundos.
3-Pones el siguiente código:

If Val(Left(Time(),2)) <= 11
.Value = Alltrim(Time()+" a.m.")
Else
If Val(Left(Time(),2)) = 12
.Value = Alltrim(Time()+" p.m.")
Else
.Value = Alltrim(Right(("0"+Allt(Str((Val(Left(Time(),2))-12),2))),2)+Right(Time(),6)+" p.m.")
Endif
Endif


Espero te sirva.


Saludos

Rick.



Date: Wed, 1 Aug 2012 07:42:42 -0700
From: rudolf...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] Control Timer
--
 
 
 

Fox Learner

unread,
Aug 1, 2012, 11:07:06 AM8/1/12
to publice...@googlegroups.com
Claro que una vez que hayas definido la propiedad interval = 1000 (o sea mil milisegundos igual a 1 segundo de retardo antes de mostrar la siguiente actualización delcontrol)..

puesto que el timer es una clase NO visual (en teoría jeje, porque si ves el relojito en tiempo de diseño, pero no en tiempo de ejecución), debes usar un control para mostrar el dato del timer.

Si lo vas a mostrar en una etiqueta, debes convertir el tipo de dato del timer a algo que pueda ser mostrado en la etiqueta.

Eso del:

Evento Init o Activate del form:

Thisform.mietiqueta.caption =  como era ? jeje

Algo como DtoC(), o cualquier funcion como Transform() o tu sabes.. eres foxero.

Saludos!

Rudolf Johann Heiner

unread,
Aug 1, 2012, 11:55:47 AM8/1/12
to publice...@googlegroups.com
gracias luis maria,
ya lo acomode de acuerdo al form,
y esta exelente,
saludos,
rudolf heiner.
--
 
 
 

Rudolf Johann Heiner

unread,
Aug 1, 2012, 11:56:53 AM8/1/12
to publice...@googlegroups.com
gracias richar,
ya esta en mi form,
gracias,
saludos,
rudolf heiner.
--
 
 
 

Rudolf Johann Heiner

unread,
Aug 1, 2012, 12:18:15 PM8/1/12
to publice...@googlegroups.com
luis maria hola,
una pregunta,
aprovechando lo del timer,
cuanto de intervalo tendria que ser para 30 minutos,
porque cada 30 minutos debe activarse una ventana y mostrar unos datos,
como lo haria e nel timer,
desde ya gracias y saludos,
rudolf heiner.
 
Sent: Wednesday, August 01, 2012 4:47 PM
Subject: Re: [vfp] Control Timer
 
--
 
 
 

Richard Gaviria

unread,
Aug 1, 2012, 12:19:58 PM8/1/12
to publice...@googlegroups.com
Se que la pregunta es para Luis Maria, pero 1000 es 1 segundo
60000 es 1 minuto
1800000 es 30 minutos.

Saludos

Rick.



To: publice...@googlegroups.com
Subject: Re: [vfp] Control Timer
Date: Wed, 1 Aug 2012 18:18:15 +0200
--
 
 
 

Luis Maria Guayan

unread,
Aug 1, 2012, 12:46:33 PM8/1/12
to publice...@googlegroups.com
La propiedad interval está en milisegundos, o sea solo aritmética:

30 min = (30 * 60) seg = (30 * 60 * 1000) milisegundos
> --
>
>
>
>


--

*Luis María Guayán
Tucumán, Argentina
_________________________
**http://www.PortalFox.com <http://www.portalfox.com/>*
*Nada corre como un zorro
_________________________*

Rudolf Johann Heiner

unread,
Aug 1, 2012, 1:21:00 PM8/1/12
to publice...@googlegroups.com
ok luis maria,
gracias,
otra pregunta al abrir la venta a los 30 min y cerrarla,
que debo de hacer en el timer,
debo reinicializar algo en el timer o interval,
no se la verdad???
saludos y bndiciones,
rudolf heiner.


-----Mensaje original-----
From: Luis Maria Guayan
Sent: Wednesday, August 01, 2012 6:46 PM
--



Pablo Daniel Lissa

unread,
Aug 1, 2012, 2:04:05 PM8/1/12
to publice...@googlegroups.com
Si el timer queda habilitado (Enabled = .T.), cada 30 minutos se va a repetir lo que esté en el evento Timer, sin necesidad de cambiar ninguna propiedad.

Ahora, si tu intención es, por ejemplo, detener el conteo de tiempo mientras tu formulario esté abierto, entonces, deberías deshabilitarlo (timer.Enabled = .F.) dentro del evento Timer, y volver a iniciarlo cuando hayas cerrado el segundo formulario (volviendo timer.Enabled = .T.)

El componente Timer procesa los intervalos desde que se lo habilita. Digamos, cuando haces timer.Enabled = .T. (estando previamente en .F.) comienza a correr el cronómetro.

Saludos.
----------------------------------------------------------------------------------------------

Jairo

unread,
Aug 1, 2012, 8:53:07 AM8/1/12
to publice...@googlegroups.com

¡Perfecto…. Excelente!

 

JM

--
 
 
 

Rudolf Johann Heiner

unread,
Aug 1, 2012, 4:55:12 PM8/1/12
to publice...@googlegroups.com
gracias pablo,
ya esta,
el form funcionando,
gracias una vez mas,
saludos,
rudolf heiner.
 
Sent: Wednesday, August 01, 2012 8:04 PM
Subject: Re: [vfp] Control Timer
 
--
 
 
 
Reply all
Reply to author
Forward
0 new messages