Ajuda com Componete Timer

Delphi

05/01/2008

Gostaria de implatar uma função usando o componete Timer para saber o tempo decorrido de determinada tarefa ?


Alves_sp

Alves_sp

Curtidas 0

Respostas

Carlosrm

Carlosrm

05/01/2008

ALVES_SP,

como ninguém até agora respondeu seu post, vou sugerir o seguinte:

qualquer que seja a função que você crie, será sempre preciso passar/informar dois valores:
1) a hora em que iniciou a tarefa demorada, e
2) a hora em que terminou.
Depois, é subtrair a primeira da segunda e obter o tempo decorrido.
Observe que a tarefa pode começar às 23:50 de um dia e terminar às 00:05 do outro dia.
Você teria que
1º) criar uma função,
2º) chamar esta função no ínicio da tarefa, passando o horário inicial,
3º) chamar de novo esta função no final da tarefa (horário final) e
calcular a diferença para obter o tempo decorrido.
E até agora, não houve necessidade de utilizar o componente TTimer.
Se vc tiver oito ( 8) tarefas demoradas no seu sistema, terá que fazer dezesseis (16) chamadas a essa função (oito ( 8) para passar a hora inicial e mais oito ( 8) para passar a hora final e retornar o tempo decorrido). É possivel que algum colega tenha uma forma mais rápida e ligeira.
Nesses caso, normalmente eu faço assim:
1º) Na procedure onde está a tarefa demorada, crio uma variável (local)
chamada horaini, do tipo TTime.
2º) Uma linha antes de começar a tarefa demorada, passo a hora do computador para esta variável (dataini := time();
3º) Ao terminar a tarefa, pego a hora final do computador e dela subtraio a hora inicial: (time() - horaini);
Para apresentar na tela eu poderia fazer:

Showmessage(´Tempo decorrido desta tarefa: ´+
                       timetostr(time() - horaini)+´.´);


E não precisou usar o componente TTimer (que gasta bastante recursos do sistema), trabalha com menos variáveis globais (só uma) e não cria e nem faz chamadas à função.

Uma função para configurar a impressora, por exemplo, é muito útil, se você tiver vários trabalhos de impressão em momentos diferentes. Mas para calcular o tempo de impressão, eu penso que que o ´meu´ jeito acaba sendo mais prático. Se eu estiver errado, por favor, me ensinem.

carlosrm :)


GOSTEI 0
POSTAR