![]() |
Contador de tiempo de una aplicacion
Buenas tardes amigos, tengo un problemilla y ya revise el foro pero nada, resulta que estoy haciendo un programa en el cual tengo timer pero quiero hacer que cuando se ejecute mi aplicacion empieze un conteo de cuanto tiempo llevar ejecutandose mi programa, pero nose como hacerlo ya que no quiero usar botones si no que se active al iniciar la aplicacion, entonces nose como empezar, espero me ayuden y gracias de antemano.
|
Podrías activar el timer en el evento OnShow del formulario principal.
// Saludos |
Ok, gracias amigo Roman, ahora te muestro codigo que tengo en el cual no encuentro como hacer para que empieze el conteo desde 00:00:00
ya que el codigo que tengo empieza pero con un conteo en retroceso. CODIGO
|
Respuesta a contador de tiempo
Buenas.
Hay varias maneras. Para empezar, ya que parece que te gusta el timer, puedes ponerlo con Timer1.Interval:= 1000 (ms.) e ir contando las veces que se activa a base de incrementar una variable global dentro del evento OnTimer del Timer. Lo activas en el evento FormShow de la Form principal de tu programa haciendo Timer1.Enabled:= True o bien ya directamente en el propio inspector de objetos. Cuando te interese saber cuanto tiempo ha pasado echas cuentas del tiempo con la variable y ya está. De todas maneras yo no me liaría tanto. Existe funciones y variables especiales para tiempo: Puedes declarar una variable, llamémosla tiempo del tipo TDateTime. Al empezar el programa, por ejempo en el evento FormShow de la Form principal de tu programa, haz tiempo:= Now; Now es una funcion que te devuelve el instante actual (no voy a entrar ahora en qué formato) y luego, cuando te interese saber cuanto tiempo ha pasado haz tiempo:= Now - tiempo; esto te dejará la variable tiempo cargada con el tiempo que ha pasado desde el principio. A continuación añade DateUtils a tu lista de uses y usa el procedimiento DecodeDateTime(const AValue: TDateTime; out AYear : Word; out AMonth : Word; out ADay : Word; out AHour : Word; out AMinute : Word; out ASecond : Word; out AMilliSecond : Word);poniendo la variable tiempo como valor para AValue. Obtendrás en las variables de salida el incremento de tiempo descompuesto en años, meses... hasta milisegundos. En realidad cuesta más de explicar que de hacer, pero creo que ya lo habrás pillado. Ten en cuenta que si tienes que mirar el incremento de tiempo varias veces, habrás de guardar la primera lectura de Now en una variable aparte, para que no se pierda. He leido por algún sitio que hay una variable del estilo de tick que se inicia al arrancar Windows (o quizá la sesión, ahora no sé). Podrías leerla dos veces al estilo de la segunda solución, pero la verdad, no me acaba de gustar. Saludos y que no decaiga (el ánimo...) |
Jal9000, bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)
Cuando necesites poner código, recuerda poner los tags al mismo, ejemplo: ![]() Gracias :) Por cierto, has hecho una buena explicación sobre el tema. |
Tomo nota de las buenas costumbres
Hola, Casimiro:
Tomo nota de las buenas costumbres. De hecho ahora buscaba un "Envolver para regalo" pero no existe... Saludos |
Cita:
|
Listo amigos ya me quedo resuelto el problemilla que tenia, les pongo el codigo para futuras consultas
Y en el evento Onshow le puse este codigo
Y en la parte de private
y con eso me funciono lo que esta buscando, espero que les ayude a futuras consultas y gracias a todos. |
La franja horaria es GMT +2. Ahora son las 04:56:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi