Agendar Rotina

Delphi

03/04/2008

Aguém sabe como faço para criar um procedimento para agendar a execução de uma rotina?
Exemplo: Agendo para 10:30 de todo o dia a execução da cópia de uma arquivo de uma pasta para outra.


Leufmt

Leufmt

Curtidas 0

Respostas

Rodc

Rodc

03/04/2008

Você poder fazer um TTimer e agendar para ele disparar o evento após decorrer o tempo (em milisegundos) que falta para o evento ser rodado.


GOSTEI 0
Leufmt

Leufmt

03/04/2008

Mas como faço isto?


GOSTEI 0
Rodc

Rodc

03/04/2008

Coloque um TTimer na tela (palheta System), no evento OnTimer() do componente coloque o código que deve ser rodado.
Depois coloque o código abaixo para agendar a execução.
Timer1.Interval := MilliSecondsBetween(Now(), DataFutura);
Timer1.Enabled := true;

Vale lembrar que o componente deve estar com a propriedade Enabled igual a False antes de chamar o código acima e ao executar o processamento agendado (evento OnTimer) a propriedade Enabled deve ser setada para False novamente.


GOSTEI 0
Leufmt

Leufmt

03/04/2008

Cara, coloca um exemplo ai mais claro pois testei ai e não deu certo.


GOSTEI 0
Rodc

Rodc

03/04/2008

O que não deu certo? Que erro deu? Como você fez?


GOSTEI 0
Leufmt

Leufmt

03/04/2008

Simplesmente não funciona


GOSTEI 0
Rodc

Rodc

03/04/2008

Inicie um novo projeto.
Coloque com TTimer no formulário.
Marque a propriedade Enabled dele para false.
Dê um duplo-clique no Timer.
No evento coloque o código
ShowMessage(´Rodou o evento´);
Coloque um TButton no formulário.
No onClick do botão coloque o código
Timer1.Interval := 5000;
Timer1.Enabled := true;

Rode o programa e clique no botão. Depois de 5 segundos apareceu a mensagem?
Sim? Então agora troque o valor de 5000ms pelo cálculo de quantos milisegundos falta para rodar o seu evento.
Não apareceu a mensagem? Então posta aqui todo o seu código para eu ver.[/code]


GOSTEI 0
POSTAR