Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,Estou precisando de desenvolver um programinha que vai ficar rodando no servidor num intervalo de tempo programado, a programação do intervalo vai ser feita em tempo de execução, no form vai ter os componentes necessários para que a pessoa diga o intervalo de tempo.Preciso saber como faço para fazer essa programação do intervalo de tempo, conheço um pouco de Delphi, mas isso ainda tá meio fora do meu alcance.Estou com o Delphi 2006 instalado, mas dicas em Delphi 7 também serão bem-vindas.Obrigado a todos.
Terá de fazer exatamente como nosso amigo @beto falou, colocando no componente Timer o intervalo de tempo para executar...
Amigo tenho uma solução para você bem facil eu fiz um exemplo para você bem simples bastar fazer isso
1 - inclua uma label
2 - inclua um timer com name timer
Codigo
Incluca no form abaixo
VarTempo: integer = 120;
****No caso eu programei para 2 minutos que é 120 segundos para você mudar é so mudar o valor que esta em 120 pelo valor que você quer
********
****
procedure TForm1.TimerTimer(Sender: TObject);begintimer.enabled:=true;tempo:= tempo - 1;label1.Caption:='Falta ' +(INTTOSTR(tempo))+ ' segundos' + ' para o programa ser fechado';if tempo = 0 thenbeginTimer.enabled:=false;close;tempo:=120;end;end;Espero ter ajudado !!
>
Amigo tenho uma solução para você bem facil eu fiz um exemplo para você bem simples bastar fazer isso
1 - inclua uma label
2 - inclua um timer com name timer
Codigo
Incluca no form abaixo
VarTempo: integer = 120;
****No caso eu programei para 2 minutos que é 120 segundos para você mudar é so mudar o valor que esta em 120 pelo valor que você quer
********
****
procedure TForm1.TimerTimer(Sender: TObject);begintimer.enabled:=true;tempo:= tempo - 1;label1.Caption:='Falta ' +(INTTOSTR(tempo))+ ' segundos' + ' para o programa ser fechado';if tempo = 0 thenbeginTimer.enabled:=false;close;tempo:=120;end;end;Espero ter ajudado !!
Ótima explicação a sua...
Mas acho que não se encaixa no que eu preciso, o programa vai ficar como se fosse um serviço no servidor, e de tempo em tempo ele executa, se eu programa para 10 minutos, a cada 10 minutos o programa executa e é fechado, até que se passe mais 10 minutos...
Na tela já coloquei um TSpinButton para a pessoa indicar o valor em minutos, faço a conversão dos milissegundos para minutos e a pessoa escolhe a qtd de minutos do intervalo
// Atribuindo o valor de 1 minuto para a variável minuto - 1 minuto = 60000 milissegundos Minuto := 60000; Intervalo := spTempo.Value; //Atribuindo o intervalor escolhido pelo usuário ao Timer Timer1.Interval := Intervalo * Minuto;
Mas no caso você quer fechar a sua aplicação, e abrir novamente somente depois de 10 minutos ?
Mas no caso você quer fechar a sua aplicação, e abrir novamente somente depois de 10 minutos ?
Acho que isso não dá certo, mas ela ficaria tipo stand-by, como se executando como ícone perto do relógio...Executar, fechar e depois abrir novamente acho que só configurando no windows, mas não é isso que quero.Obrigado
Mas se rodar como serviço do windows, nem precisa criar um item ao lado do relógio, no caso pode somente ter um arquivo que ele lê de quanto em quanto tempo deve de disparar...
Mas se rodar como serviço do windows, nem precisa criar um item ao lado do relógio, no caso pode somente ter um arquivo que ele lê de quanto em quanto tempo deve de disparar...
A questão do ícone perto do relógio foi só para ilustrar, mas não precisa disso, só quero que ele fique sendo executado de tempo em tempo, nas tarefas agendadas do windows não consegui fazer isso, só se fosse uma vez por dia...
Mas justamente, você pode usar o componente Timer para ele controlar isto, nele você diz que quer que o mesmo execute a cada 10 minutos, isto ele mesmo irá controlar... Sendo que mesmo assim pode criar como registro do windows...
Mas justamente, você pode usar o componente Timer para ele controlar isto, nele você diz que quer que o mesmo execute a cada 10 minutos, isto ele mesmo irá controlar... Sendo que mesmo assim pode criar como registro do windows...
Estou bem enferrujado no Delphi, mas vou ver o que consigo...Obrigado
Se quiser veja este artigo sobre serviço do windows, no exemplo eles usam um Timer, mais ou menos como você vai precisar...
Já pensou em usar thread???ela é assincrona e não atrabalha na execução.t++
coloque este codigo no ontimer do timer , a variavel iIntervalo crie ela publica no form e nao na função
procedure TF_PRINCIPAL.Timer1Timer(Sender: TObject);
Var sData1:String;
begin
SB_BARRA.Panels[3].Text := sDataAtual; //DateToStr(Date);
SB_BARRA.Panels[4].Text := TimeToStr(Time);
Inc(iIntervalo);
IF iIntervalo = 1800 Then // avaliar a cada 30 minutos
Begin
[ aqui você inseri o codigo que deve ser executadoa cada intervalo de tempo ]
iIntervalo := 0; a cada intervalo q o codigo for executado a variavel deve ser reiniciada
End;
End;
end;Olá jssistemas,
Como pode observar, o assunto do tópico é datado no ano de 2006. Por favor, observe as datas dos tópicos e a fim de evitar desentar tópicos desnecessariamente.
Fala ai...
você vai ter que usar o componente timer... que você pode ativar ou desativar conforme necessario..
http://forum.imasters.com.br/public/style_emoticons/default/joia.gif