ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[RESOLVIDO] Componente Timer. Um auxílio?
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 10:10 am    Assunto: Responder com Citação

Valeu mesmo pelo auxilio galera,

Agora com as ferramentas em mão, vou desenvolver o que faltava.

Obrigado pela ajuda de todos!

ActiveDelphi realmente tem os melhores colaboradores!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 11:35 am    Assunto: Responder com Citação

Falai pessoal,

Olha eu novamente pedindo um auxilio rs.

Graças aos posts aqui colocados, consegui chegar num código fonte que é o que eu preciso:

Código:

procedure TFrmBackupAutomatico.TimerTimer(Sender: TObject);
Var
  Hora : TDateTime;
  begin
    Hora := GetTime();
    Label2.Caption   := timetostr(time);
    if Dm1.Reg.FieldByName('HoraTarefa').AsDateTime = Hora then
      begin
        ShowMessage('Teste!');
      end;
end;


Na tabela Reg, existe o campo HoraTarefa do tipo 'T - Time'.
No Evento OnShow do formulário, coloquei:

Código:

timer.enabled := true;


Tenho um DBEdit que armazenará o valor 'Hora' no campo e o Timer (Evento OnTimer) tem essa rotina acima.

Porque o componente Timer consegue fazer de um Label (Label2) um relógio correto e não consegue dar o ShowMessage na tela?

Estou 'arrancando cabelos' pra fazer isso funcionar...

Alguém tem uma idéia do que pode ser?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
rafacauly
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 194

MensagemEnviada: Ter Ago 02, 2011 12:06 pm    Assunto: Responder com Citação

A propriedade interval ta em Quanto? é dificil acertar a hora exata para sair seu showmessage...

tente usar MinuteSpam, secondSpam, milliSecondSpam dependendo do seu intervalo para ele cair dentro do if

olhe se as datas estão certas...
_________________
Jesus loves you!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 12:11 pm    Assunto: Responder com Citação

rafacauly

Bom dia!

A propriedade interval está com: 1000.

Usar MinuteSpam? MiliSecondSpam?
Esse conceito eu nunca usei.
Como é o código destes?

Ps.: As datas estão corretas!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
rafacauly
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 194

MensagemEnviada: Ter Ago 02, 2011 12:46 pm    Assunto: Responder com Citação

interval é em ms, ou seja a cada 1 seg vai disparar o evento.
A probabilidade é muito pequena de você acertar o tempo, entendeu?

as funções spam retorna a diferença entre o tempo.
Ficaria mais um menos assim:
Código:

if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, Hora) <0> -0.5)  then
      begin
        ShowMessage('Teste!');
      end;


dai ele vai entrar no if meio segundo antes ou meio segundo depois, entendeu?
se nao der certo olha a condição , fiz meio na correria
_________________
Jesus loves you!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rafacauly
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 194

MensagemEnviada: Ter Ago 02, 2011 12:51 pm    Assunto: Responder com Citação

if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, Hora) <0> -0.5) then
begin
ShowMessage('Teste!');
end;

Por algum motivo nao consegui escrever toda a condição no code
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 1:09 pm    Assunto: Responder com Citação

Ele me dá erro de:

Código:

[Error] [Error] UBackupAutomatico.pas(232): Incompatible types


aqui:
Código:

hora)<0> -0.5)


Já viu este erro?

Obrigado rafacauly pelo auxilio!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
rafacauly
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 194

MensagemEnviada: Ter Ago 02, 2011 1:14 pm    Assunto: Responder com Citação

Nao consigo escrever a condição certa, ta dando erro aqui. Aparece <0>

if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, Hora) <0> -0.5)

then

putz nao da para escrever mesmo, mas te falo em portugues:
se a diferença for menor que 0.5 e ela for maior que -0.5 então...
_________________
Jesus loves you!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 1:23 pm    Assunto: Responder com Citação

É o mesmo erro que eu aqui...

Então, entendi o que passou! também estou tentando desvendar no que pode ser esse erro...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 2:07 pm    Assunto: Responder com Citação

Então,

Testei de TODOS os jeitos possíveis;
Código:
  Label2.Caption   := timetostr(time);
      if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, hora)<0>-0.5) then
        begin
          ShowMessage('Teste!');
        end;


Coloquei o <0> entre aspas, aspas simples, o -0.5 também e não consegui... Retorna erro de:
Código:

[Error] UBackupAutomatico.pas(251): Incompatible types


Alguém tem a salvação?
rs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Ter Ago 02, 2011 2:35 pm    Assunto: Responder com Citação

Galera,

Achei uma solução, não sei se a mais certa mas, na hora programada (Gravada na tabela), o sistema executa a tarefa indicara.

Código:

if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, hora) <= hora) then
Begin
execuções;
End.


Gostaria de agradecer toda a ajuda do fórum!

Foi de extrema importancia para a aplicação!

Obrigado mesmo pessoal!


Grande abraço!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
rafacauly
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 194

MensagemEnviada: Ter Ago 02, 2011 5:10 pm    Assunto: Responder com Citação

velho, <0> é erro daqui do site, não consigo escrever pra ti. A condição é com um AND. Só que o site transforma nisso...

oq eu queria dizer era:(tentando pela ultima vez)
Código:


if (SecondSpan(Dm1.Reg.FieldByName('HoraTarefa').AsDateTime, hora) <0> -0.5)

mas se ta funcionando como vc queria blz..
abraços
_________________
Jesus loves you!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB