Ir para conteúdo
Fórum Script Brasil
  • 0

problema no TTimer


frnd

Pergunta

Seguinte,

eu utilizo o TTimer para que a janela apareça durante 5 segundos, mas o que está estranho é assim...

tem hora que ele abre e fecha em menos de 5 segundos.... durante 1 2 segundos..... e depois funciona normal.

porque isso? Poderá ser o cursor ou algo semelhante?

[]s

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Seguinte,

eu utilizo o TTimer para que a janela apareça durante 5 segundos, mas o que está estranho é assim...

tem hora que ele abre e fecha em menos de 5 segundos.... durante 1 2 segundos..... e depois funciona normal.

porque isso? Poderá ser o cursor ou algo semelhante?

[]s

Oi, 'frnd' !

1) observe os Conceitos abaixo:

TTimer usa um interval de 1000 milisegundos para cada segundo. Assim, 5 segundos = 5000.

TTimer usa um desvio da interrupção 8 (clock - relógio da máquina) liberada pelo Windows para controle de tempo Não há falha nesta transação.

2) Verifique se estes fatores estão sendo seguidos

Você está usando o TTimer na janela chamada? (Deveria)

O tempo começa a contar quando a janela é ativada e desativado quando a janela é fechada ou colocada em segundo plano?

(Timer.Enabled)

Você está usando o controle de laço para a contagem do tempo dentro do evento ONTIMER?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom,

aqui eu coloquei o TTimer como ENABLED = TRUE e com o INTERVAL = 1 na janela que ficará durante 5 s aparecendo, e com o seguinte código:

procedure TForm5.Timer1Timer(Sender: TObject);
begin
if (Timer1.Interval = 1) then
Timer1.Interval := 7000;
Form5.Close;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Olá frnd!

Se você deseja que seu form seja fechado em 5 segundos, então faça da seguinte forma:

1 - observe o que o colega Denis Courcy falou a respeito do Timer estar no form que será fechado;

2 - o laço que ele disse ficará da seguinte forma:

Var I : Integer;
begin
  Timer1.Enabled := True;
  For i := 1 to Timer1.Interval do
    If i = 5000 Then
      Form1.Close;
end;

Esse código deve estar no evento OnTimer do Timer. 5000 é o tempo de milisegundos que o form ficará aberto, ou seja, 5 sefundos, esse tempo deve ser declarado na propriedade Interval do componente.

Espero ter ajudado.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...