Contador de Tiempo, cuenta regresiva en powerbuilder

Alguien podria ayudarme en hacer un contador de cuenta regresiva.

Los avances que tengo es que inicia en 1 y va incrementado. Lo que me gustaria hacer es que en la segunda caja de texto si pusiera por ejemplo 15 segundos u otro, iniciara el contador de forma descendiente. Y cuando llego a 0 se detenga sin tener que dar click en el boton detener.

1 respuesta

Respuesta
1

Dentro de tu algoritmo deberías considerar lo siguiente:

li_tiempo = tiempo a decrementar //Valor de la segunda caja de texto.

En el evento timer, se debe decrementar en li_tiempo = li_tiempo -1 segundo.

El evento timer debe terminar cuando li_tiempo = 0. o inclusive se puede lanzar, el evento del boton detener, cuando el li_tiempo = llegue a 0.

Hola, gracias por su respuesta. en el boton iniciar tengo : Timer(1)

la caja dos se llama sle_2

y en timer tengo :

time lt_tiempo
lt_tiempo = time(em_tiempo.text)
lt_tiempo = relativetime(lt_tiempo,1)
em_tiempo.text = string(lt_tiempo,"hh:mm:ss") 

en que parte agregraria?? 

li_tiempo = tiempo a decrementar //Valor de la segunda caja de texto.

Gracias, por su tiempo, apenas voy inicando con power builder. 

OK... del código timer

time lt_tiempo
lt_tiempo = time(em_tiempo.text)
lt_tiempo = relativetime(lt_tiempo, -1)
em_tiempo.text = string(lt_tiempo,"hh:mm:ss") 

//luego debes verificar que el tiempo es 0

if (SecondsAfter(00:00:00, lt_tiempo) = 0 ) then

timer(0)

//Esto detendria el cronometro

Gracias, puse lo que mando

time lt_tiempo
lt_tiempo = time(em_tiempo.text)
lt_tiempo = relativetime(lt_tiempo, -1)
em_tiempo.text = string(lt_tiempo,"hh:mm:ss")

//luego debes verificar que el tiempo es 0
//
if (SecondsAfter(00:00:00, lt_tiempo) = 0 ) then
//
timer(0)
messagebox("tiempo","finalizado")
end if

Al darle en botón iniciar no avanza el tiempo.

Disculpe por tanta molestia.

Estuve analizado tu formulario... y había confundido...

En el botón iniciar... antes de lanzar el timer, se debe sumar el numero que se asigna al sle_2, para ello sugiero que crees un variable de instancia, para tener el numero asignado y que esto vaya decrementado para facilitar la igualdad, entonces quedaría así en cb_iniciar:

ii_num = integer(sle_2.text)

lt_tiempoinicial = relativetime(time(em_tiempo.text), ii_num)

em_tiempo.text = string(lt_tiempoinicial,"hh:mm:ss")

En el evento timer

time lt_tiempo
lt_tiempo = time(em_tiempo.text)
lt_tiempo = relativetime(lt_tiempo,-1)
em_tiempo.text = string(lt_tiempo,"hh:mm:ss") 

if ii_num > 0 then

ii_num = ii_num - 1

else

timer(0) //Detiene el reloj

end if

muchas graciaaas, una ultimaaa dudaa como seria solo para ocultar (hh:mm) y conservar la parte de los segundos.( ss). muchas gracias por su ayuda..

Podrías ocultar el em_tiempo

Y poner un sle_3, donde muestres el ii_num... que es lo mismo que los segundos...

sle_3.text= ii_num seria de esta manera? o de que manera seria. disculpe por tanta molestia

Sle_3.text = string(ii_num)

Muchas Gracias

De nada, saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas