Cuenta Regresiva con Timer

467 views
Skip to first unread message

integral

unread,
Jul 17, 2018, 1:15:18 PM7/17/18
to Comunidad de Visual Foxpro en Español

Que tal Amigos :

Necesito de vuestra ayuda en lo siguiente :

Deseo crear un Label que contenga una cuenta regresiva para ello deseo utilizar un control TIMER.

Algun colega que ya trabajo en ello y me pueda orientar en como implementarlo...

Agradezco sus comentarios y sugerencias...

Saludos,

INTEGRAL

  

mapner

unread,
Jul 17, 2018, 3:12:14 PM7/17/18
to Comunidad de Visual Foxpro en Español
Hay un producto llamado Visual Devapp que tiene un muy buen ejemplo de eso...

Saludos

Antonio Meza

unread,
Jul 17, 2018, 3:19:32 PM7/17/18
to Comunidad de Visual Foxpro en Español
jajajajajaja tan bueno que una vez que llego a cero dejo a todos los que se registraron congelados en el tiempo (yo no me registre jajajaja) 

Por cierto el Timer nunca lo use, no pone lenta las cosas?

saludos
Antonio Meza

Irwin Rodriguez

unread,
Jul 17, 2018, 3:51:53 PM7/17/18
to publice...@googlegroups.com
A propósito de "Congelados en el tiempo", no sería el condensador de flujos?
--
Irwin Rodríguez
Analista Programador

+593 0994903424
Latacunga - Ecuador
"Un equipo solo son piezas que intercambias hasta que terminas el trabajo, es eficiente, funciona."
Message has been deleted

ArturoPC

unread,
Jul 20, 2018, 12:21:28 PM7/20/18
to Comunidad de Visual Foxpro en Español
El Timer no pone lentas las cosas :)
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Zarlu

unread,
Jul 25, 2018, 2:50:07 PM7/25/18
to Comunidad de Visual Foxpro en Español
Buenas tardes  Integral!
 
Te paso, en un formulario,el código que originalmente implementé para contar el tiempo de un proceso (busqueda, reindexacón...etc).
Adaptado a un temporizador.
Checalo y ajustalo a tus necesidades.
 
Suerte
Zarlu
Chetumal, Quintana Roo, México 
Message has been deleted
Message has been deleted

Zarlu

unread,
Jul 25, 2018, 8:23:03 PM7/25/18
to Comunidad de Visual Foxpro en Español
Disculpa Integral!
Lo siento. No me permite el sistema subir los archivos.
Alguien sabra la razón? No son pesados y está zipeado
 
zarlu
Chetumal, Quintana Roo, México
 

HernanCano

unread,
Jul 26, 2018, 1:05:57 AM7/26/18
to Comunidad de Visual Foxpro en Español
zarlu: cuando tengas el compactado, cámbiale la extensión, por ejm si es .RAR, pónle .RRR, o ._RAR, o .RAR.TXT .

O se la quitas y en el mensaje nos dices cuál es.

HernanCano

unread,
Jul 26, 2018, 1:29:47 AM7/26/18
to Comunidad de Visual Foxpro en Español

set escape on 

IniMinutos =  4 && 44
IniSegundos= 12

INICIA=datetime(1001,1,1,1,IniMinutos,IniSegundos)

do while .t.

   wait window ttoc(INICIA,3) time 1 &&nowait noclear
   INICIA=INICIA-1
   
   ** 
   ** mostrar en los labels
   ** 
   ** ThisForm.textbox1.Value = minute(INICIA)
   ** ThisForm.textbox2.Value = sec(INICIA)
   ** 
   
   if minute(INICIA)<=0 and sec(INICIA)<=0
      exit
   endif

enddo

integral

unread,
Jul 26, 2018, 8:14:54 AM7/26/18
to Comunidad de Visual Foxpro en Español

Amigo ZARLU :


Como bien dicen es solo cambiar la extensión, pero a veces no resulta y no se puede adjuntar me a pasado a mi...

De todos modos podrás enviarlo a mi correo...


Saludos,

INTEGRAL

PD : YA TENGO LOS SEGUNDOS RESTANTES SOLO ME FALTA HACER EL PROCESO CON LOS MINUTOS...


El martes, 17 de julio de 2018, 12:15:18 (UTC-5), integral escribió:

Que tal Amigos :

Necesito de vuestra ayuda en lo siguiente :

Deseo crear un Label que contenga una cuenta regresiva para ello deseo utilizar un control TIMER.

Algun colega que ya trabajo en ello y me pueda orientar en como implementarlo...

Agradezco sus comentarios y sugerencias...

Saludos,

INTEGRAL

  

Message has been deleted

Zarlu

unread,
Jul 26, 2018, 10:00:10 AM7/26/18
to Comunidad de Visual Foxpro en Español
Buenos días Integral!
Ya lo mandé a tu correo.
El código que te propongo incluye Horas--Minutos--Segundos
Suerte.
tempor.png

Gregori Arjona Toledo

unread,
Jul 26, 2018, 10:13:46 AM7/26/18
to Comunidad de Visual Foxpro en Español
Hola, aqui tienes un ejemplo exacto de lo que quieres hacer.

El codigo no es mio.


frmMyForm = CREATEOBJECT('myTimer')  
frmMyForm.SHOW  
READ EVENTS  
RETURN

DEFINE CLASS mytimer AS form
    Top = 0
    Left = 0
    Closable = .f.
    Height = 454
    Width = 633
    DoCreate = .T.
    Caption = "Timer"
    
    mduration =  120 && Duracion en segundos
    
    mycount = 0
    Name = "myTimer"

    ADD OBJECT cmdexit AS commandbutton WITH ;
        Top = 396, ;
        Left = 120, ;
        Height = 27, ;
        Width = 84, ;
        Caption = "\<Salir", ;
        Name = "cmdExit"

    ADD OBJECT command1 AS commandbutton WITH ;
        Top = 396, ;
        Left = 216, ;
        Height = 27, ;
        Width = 84, ;
        Caption = "\<Iniciar", ;
        Name = "Command1"

    ADD OBJECT txttime AS textbox WITH ;
        FontSize = 72, ;
        Height = 108, ;
        Left = 108, ;
        Top = 36, ;
        Visible = .F., ;
        Width = 384, ;
        BackColor = RGB(128,255,255), ;
        Name = "txtTime"

    ADD OBJECT timer1 AS timer WITH ;
        Top = 396, ;
        Left = 540, ;
        Height = 23, ;
        Width = 23, ;
        Name = "Timer1"

    PROCEDURE mytimer
        LOCAL nowLeft
        nowLeft = ThisForm.myCount - (HOUR(DATETIME())*3600) - ;
                  (MINUTE(DATETIME())*60) - SEC(DATETIME())
        ThisForm.txtTime.Value = RIGHT("00"+ALLTRIM(STR(INT(nowLeft/3600))),2)+":"+ ;
                 RIGHT("00"+ALLTRIM(STR(INT(MOD(nowLeft,3600)/60))),2)+":"+ ; 
                 RIGHT("00"+ALLTRIM(STR((MOD(nowLeft,60)))),2)
        IF nowLeft < 1
            ThisForm.txtTime.Visible = .f.
            ThisForm.Timer1.Interval = 0
            ThisForm.Timer1.Reset()
        ENDIF
        ThisForm.txtTime.Refresh()
    ENDPROC

    PROCEDURE cmdexit.Click
        CLEAR EVENTS
        ThisForm.Release()
    ENDPROC

    PROCEDURE command1.Click
        ThisForm.myCount = (HOUR(DATETIME())*3600) + ;
                           (MINUTE(DATETIME())*60) + ;
                           SEC(DATETIME()) + (ThisForm.mDuration*60)
        ThisForm.Timer1.Interval = 1000
        ThisForm.Timer1.Reset()
        ThisForm.txtTime.Visible = .t.
        LOCAL nowLeft
        nowLeft = ThisForm.mDuration*60
        ThisForm.txtTime.Value = RIGHT("00"+ALLTRIM(STR(INT(nowLeft/3600))),2)+":"+ ;
                 RIGHT("00"+ALLTRIM(STR(INT(MOD(nowLeft,3600)/60))),2)+":"+ ; 
                 RIGHT("00"+ALLTRIM(STR((MOD(nowLeft,60)))),2)
        ThisForm.txtTime.Refresh()
    ENDPROC

    PROCEDURE timer1.Timer
        ThisForm.myTimer()
    ENDPROC

ENDDEFINE
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Zarlu

unread,
Jul 26, 2018, 11:15:07 AM7/26/18
to Comunidad de Visual Foxpro en Español
Buenos días Foxeros!
Gracias HernanCano por la sugerencia....no se pudo...no pude
 
Le quité archivos, cambié extensiones, lo partí hasta en 3 zip..y nada. plop!!
 
Lo subí a OneDrive:
 
 
(Gracias por avisar si se pudo descargar correctamente)

syscon...@gmail.com

unread,
Jul 26, 2018, 4:06:13 PM7/26/18
to Comunidad de Visual Foxpro en Español

Intenta con esto:

SET DATE YMD
SET CENTURY on
SET HOURS TO 24
fechahora=DATETIME()
FOR c=100 TO 1 STEP -1
    fechahora=fechahora-1
    WAIT WINDOW fechahora
ENDFOR

syscon...@gmail.com

unread,
Jul 26, 2018, 4:30:34 PM7/26/18
to Comunidad de Visual Foxpro en Español
Bueno mejor:


EN UN FORM CREAR:

MM
TEXTBOX
VALUE=0

SS
TEXTBOX
VALUE=0


TIEMPO
TIMER
INTERVAL=1000

EN EL LOAD
tiemporegresivo=130 && SEGUNDOS
thisform.mm.Value=INT(tiemporegresivo/60)
thisform.ss.Value=tiemporegresivo-(thisform.mm.Value*60)


EN EL TIEMPO
IF thisform.ss.Value=0 and thisform.MM.Value=0
   *** FIN
ELSE
   thisform.ss.Value=thisform.ss.value-1
   IF thisform.ss.Value<0
      thisform.mm.Value = thisform.mm.Value -1
      thisform.ss.Value=59
   ENDIF   
ENDIF

Creo q eso sería todo.

Dsan

unread,
Jul 26, 2018, 10:28:58 PM7/26/18
to publice...@googlegroups.com

Zarlu, Te quedo nice, lo voy hacer una clase ole dll y lo pegaré tipo reloj . (Y), me gustó el estilo.

Slds
Dsanchez

integral

unread,
Jul 27, 2018, 1:14:47 AM7/27/18
to Comunidad de Visual Foxpro en Español

Amigo ZARLU :

Descargue los archivos del link que indicas...

Pero al ejecutar el proyecto el tiempo del reloj no cambia es decir permanece en Cero...

Quizas falte un archivo...

Saludos,

INTEGRAL

Dsan

unread,
Jul 27, 2018, 1:29:15 AM7/27/18
to publice...@googlegroups.com
Integral

tenes que escribir la hora minuto y segundos doble clic ahi

y luego play...


Zarlu

unread,
Jul 27, 2018, 10:44:01 AM7/27/18
to Comunidad de Visual Foxpro en Español
Buenos días amigos Foxpro!
 
DSánchez gracias por el comentario. Eso de la dll suena bien. No lo sé hacer, (ni lo he intendado jejejs), pero sería práctico.
Hay otro timer, con otro uso, basado en el mismo codigo,  que me gustaría en dll, deja lo pulo y lo subo para eso de la dll.
 
Integral, te mandé de nuevo el ".zip" a tu correo, una disculpa me confundí.
 
Comentario:
Después de capturar las horas y/o minutos y/o segundos a contar y darle "iniciar" habría que esperar que transcurra el primer segundo para que empiece a cambiar el conteo.
Como veran es una lógica de código muy sencila, que podría optimizarse hasta en una línea, pero para efectos didácticos y de claridad personales los prefiero así. Ahí se los dejo. La intención es que a laguien más le sea útil.
 
Saludos

William López

unread,
Jul 27, 2018, 11:43:14 AM7/27/18
to Comunidad de Visual Foxpro en Español
Zarlu: 
Normalmente el problema de envío de *.zip o *.rar son de google o chrome que no permiten este tipo de envíos a este sitio que tambien esta en google. Una solución es enviarla desde otro navegador o como tu lo hiciste: postearla en onedrive o en  google drive.
Saludos

Zarlu

unread,
Jul 27, 2018, 12:50:40 PM7/27/18
to Comunidad de Visual Foxpro en Español
 Buenos días!
 
Gracias William López.
 
Lo tomaré en cuenta
 
zarlu
Chetumal. Quintana Roo, México
 

HernanCano

unread,
Jul 27, 2018, 3:25:05 PM7/27/18
to Comunidad de Visual Foxpro en Español

Debes escribir en los tres campos o en dos o en uno a partir de cuánto debe empezar el temporizador, y luego click en Play.....

Si te funciona, le dices a zarlu.

Rodolfo Gallardo

unread,
Jan 25, 2021, 10:56:45 PM1/25/21
to Comunidad de Visual Foxpro en Español
Zarlu Podrias volver a compartir por favor  el archivo el link aparece ya cadudaco 

Zarlu

unread,
Jan 26, 2021, 9:22:59 AM1/26/21
to Comunidad de Visual Foxpro en Español
Buenos días gallardo49 !

Con gusto. Espero esta vez ya haber aprendido a adjuntar sin rechazo.
(Eliminar el "2" de las extensiones ".sct2" y ".scx2")

zarlu
Chetumal, Quintana Roo, México
Tempor.zip

Lic. Rodolfo Gallardo Nájera

unread,
Jan 26, 2021, 12:15:09 PM1/26/21
to publice...@googlegroups.com
Muchas gracias !!! 

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/bdf765ff-5c94-4a41-834d-43bf9c72f255n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages