| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 10:10 am Assunto: |
|
|
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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 11:35 am Assunto: |
|
|
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 |
|
 |
rafacauly Aprendiz

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 194
|
Enviada: Ter Ago 02, 2011 12:06 pm Assunto: |
|
|
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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 12:11 pm Assunto: |
|
|
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 |
|
 |
rafacauly Aprendiz

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 194
|
Enviada: Ter Ago 02, 2011 12:46 pm Assunto: |
|
|
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 |
|
 |
rafacauly Aprendiz

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 194
|
Enviada: Ter Ago 02, 2011 12:51 pm Assunto: |
|
|
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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 1:09 pm Assunto: |
|
|
Ele me dá erro de:
| Código: |
[Error] [Error] UBackupAutomatico.pas(232): Incompatible types
|
aqui:
Já viu este erro?
Obrigado rafacauly pelo auxilio! |
|
| Voltar ao Topo |
|
 |
rafacauly Aprendiz

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 194
|
Enviada: Ter Ago 02, 2011 1:14 pm Assunto: |
|
|
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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 1:23 pm Assunto: |
|
|
É 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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 2:07 pm Assunto: |
|
|
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 |
|
 |
Djarum Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011 Mensagens: 296
|
Enviada: Ter Ago 02, 2011 2:35 pm Assunto: |
|
|
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 |
|
 |
rafacauly Aprendiz

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 194
|
Enviada: Ter Ago 02, 2011 5:10 pm Assunto: |
|
|
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 |
|
 |
|