Porque o Ttimer para de dispara ao acessar uma rotinas ?

07/03/2006

:oops:
Olá!

Tenho o seguinte problema.
Tenha uma rotina pesada de processamento, q leva pelo menos 3 minutos, leitura de 12 meses de movimentos p/ calc média mensal.
Como não posso por uma barra de progresso, resolvi por um Timer p/ preencher uma barra de progresso, pelo menos p/ o usuario ver q o programa está rodando.
Mas o problema surgiu, quando tive que acessar uma rotinas, o Timer parou de disparar, e só volta qdo a rotina retorna a raiz.
Algum saberia com contornar isso, fora usar Threaders.

Ex:
Procedure TForm1.Inicio()
Begin
Timer ok funciona....

Processar_aquivos() ... neste ponto o timer trava

neste ponto o time funciona...

End;

Desde já meus agradecimentos.

ANT.CARLOS/SP


Ant.carlos/sp

Respostas

08/03/2006

Adriano Santos

[quote:5044e33610=´ANT.CARLOS/SP´]:oops:
Olá!

Tenho o seguinte problema.
Tenha uma rotina pesada de processamento, q leva pelo menos 3 minutos, leitura de 12 meses de movimentos p/ calc média mensal.
Como não posso por uma barra de progresso, resolvi por um Timer p/ preencher uma barra de progresso, pelo menos p/ o usuario ver q o programa está rodando.
Mas o problema surgiu, quando tive que acessar uma rotinas, o Timer parou de disparar, e só volta qdo a rotina retorna a raiz.
Algum saberia com contornar isso, fora usar Threaders.

Ex:
Procedure TForm1.Inicio()
Begin
Timer ok funciona....

Processar_aquivos() ... neste ponto o timer trava

neste ponto o time funciona...

End;

Desde já meus agradecimentos.

ANT.CARLOS/SP[/quote:5044e33610]

O que vc tem em Processar_aquivos??? Já tentou usar Application.ProcessMessages ???


Responder Citar

08/03/2006

Ant.carlos/sp

:cry:

Caro amigo!

[color=olive:ff60bc9fbb]1-O que vc tem em Processar_aquivos???
2-Já tentou usar Application.ProcessMessages ???[/color:ff60bc9fbb]
Nesta rotina tenho q executar 1 Sqls (Vendas do ultimos 12 meses e carregar um Cds) e prepará-lo p/ impressao com os calculos.

Desejaria qdo estivesse executando a SQL usar um Timer que ficaria disparando e carregando uma barra de progresso p/ q o usuario visse q o processamento estava andando. Mas ao executar a procedure, o Timer p/ de disparar, não entendi nada.
Alguem saberia porque isso acontece ?


[color=olive:ff60bc9fbb]2-Já tentou usar Application.ProcessMessages [/color:ff60bc9fbb]

Como usar Application.ProcessMessages x Ttimer em relação ao q eu desejo fazer ? :?:

T+

ANT.CARLOS/SP


Responder Citar