Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Paulo Taraciuk

Cálculo com horas

Recommended Posts

Olá pessoal, estou trabalhando em uma agenda e preciso fazer um lembrete tipo, cerca de 10 minutos antes de determinado evento apareça uma mensagem lembrando o usuário do tal evento, separar os eventos de determinada data eu consegui, agora não sei como poderia fazer para realizar este cálculo, estou realizando a consulta dessa maneira

function Tfrm_principal.lendobanco: Boolean;

begin

DM_agenda.ZQry_consulta.Active:=False;

DM_agenda.ZQry_consulta.SQL.Clear;

DM_agenda.ZQry_consulta.SQL.Add('select * from eventos where data =: Da');

DM_agenda.ZQry_consulta.ParamByName('da').Value:=Date;

DM_agenda.ZQry_consulta.Active:= True;

Então jogo para um ListBox os Horários do dia

while not (DM_agenda.ZQry_consulta.Eof)do begin

ListBox1.Items.Add(DM_agenda.ZQry_consulta.Fields[2].AsString);//O campo 2 da tabela é o horário

DM_agenda.ZQry_consulta.Next

Aí tenho todos os horários do dia, e preciso somente ser lembrado 10 minutos antes de cada evento, alguém poderia dar uma dica de como fazer esta cálculo ?

Se alguém puder me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

João já tive um problema desses, tenho um programa que realiza uma importação do banco de dados todos os dias as 22:00, mais antes disso eu maximizo a tela. Para eu comparar as datas eu comparo elas no formato de strings. E essa comparação fica dentro do evento OnTimer do componente TTimer. Vou colacar aki p/ ver se te da alguma ideia.

 

LblHora.Caption := TimeToStr(Now); // Atualizando a hora no forma

if (Trim(LblHora.Caption) = Trim(w_hora_atual + ':00')) then // se a hora atual que esta no form(string) = a hora programada (string) aí vai fazer o processo

begin

FrmPrincipal.Show;

Sincronizar; // Procedure de Importação

end;

 

Bom João espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leonardo_Iron, eu tentei dessa maneira, mas não dá certo, se eu tiro daquela parte "Trim( HORAATUA+ '00:00:15' ", os números, deixando somente HORAATUA, ele mostra a mensagem, de que maneira eu deveria colocar, por exemplo os minutos, ou como eu testei, os segundos?

procedure Tfrm_principal.Timer3Timer(Sender: TObject);

VAR

HORAATUA: String;

begin

HORAATUA:='16:50:00';

LblHora.Caption := TimeToStr(Now);

if (Trim(Label6.Caption) = Trim( HORAATUA+ '00:00:15')) then

begin

ShowMessage('HORA');

end;

end;

Então quando eu faço da maneria seguinte, funciona

procedure Tfrm_principal.Timer3Timer(Sender: TObject);

VAR

HORAATUA: String;

begin

HORAATUA:='17:00:00';{como eu faço aqui para ficar HORAATUA menos 15 minutos?, eu poderia colocar mais uma variável para receber o resultado}

LblHora.Caption := TimeToStr(Now);

if (Trim(LBLHORA.Caption) = Trim(HORAATUA)) then

begin

ShowMessage('HORA');

 

end;

end;

Então eu pergunto, como eu faço para subtrair 15 minutos da variável HORAATUA, para que às 16:45:00 apareça a ShowMessage ?.Por que o valor que a variável irá receber virá do banco de dados

Valeu, obrigado pela atenção..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.