Ir para conteúdo

POWERED BY:

Arquivado

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

lordstarlight

Somando minutos a hora atual

Recommended Posts

amigos,

 

Sou iniciante no delphi e vejo que muitas procedures e funções que etão disponíveis na net são de forma resumida.

Por exemplo, veja a função abaixo:

 

function AdicionaHora(TimeAdd: Integer) : String;
{Adiciona à hora atual um numero de horas determinado. Caso este numero seje negativo, ele subtrairá da hora atual}
Var
 Horas,Min,SomaHoras,SomaMin : Integer;
 S, S1 : String;
begin
 Horas := Strtoint(Copy(TimetoStr(Time),1,2))+ TimeAdd;
 Min := Strtoint(Copy(TimetoStr(Time),4,2))+ TimeAdd ;
 SomaHoras := SomaHoras+Horas;
 SomaMin := SomaMin + Min;
 If SomaMin > 59 Then
   begin
     if SomaMin mod 60 = 0 Then
       begin
         Somahoras := Somahoras+(Somamin div 60);
         Somamin := 0;
       end
     else
       begin
         SomaHoras := SomaHoras + (SomaMin div 60);
         SomaMin := SomaMin mod 60;
       end;
   end;
 If Somamin = 0 Then
   begin
     S := '00';
   end
 else
   begin
     S := InttoStr(Somamin);
   end;
 If Length(InttoStr(SomaHoras)) = 1 Then
   begin
     S1 := Concat('0',InttoStr(Somahoras));
   end
 else
   begin
     S1 := InttoStr(Somahoras);
   end;
 Result := Concat(S1,':',S,':00');
end;

 

 

entendo que esta função pega o valor em minutos e soma a uma determinada hora.

Mas como é feita a entrada dos dados?

edit ???

Como é exibido o resultado

label??? mensagem???

 

Estou trabalhando com horas e estou tentando fazer o seguinte:

Já vi que esta função é o que procuro.

tenho vários radiobuton que tem o valor de 15, 30, 60 e 120 (neste caso minutos).

quando escolho um desses botões a função pega o valor do radiobuton e soma os minutos escolhidos a hora atual e me informa num edite já com os minutos adicionados.

Sei que isso não deve ser muito difícil, mas como sou iniciante pra mim fica um pouco complicado.

 

Alguém pode me dá uma ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona assim:

 

Observe que esta rotina é uma Function. Functions tem como característica a possibilidade de retornar um valor, ou seja, uma Function executa um grupo de comandos e a mesma pode ser usada como uma variável ao passar valores para outro statement. Usando a funcion acima como exemplo:

var
 Teste : String;
begin
 Teste := AdicionaHora;

Assim, você executa as instruções da function e o resultado da mesma é passada para a variável Teste. Com Procedures esta aplicação não é possível.

 

A entrada de dados é feita pela 'Passagem de parâmetros'. Observe que no cabeçalho da Function foi adicionado o parâmetro TimeAdd do tipo Integer. Para realizar a entrada de dados, você informa um valor para aquele parâmetro:

var
 Teste : String;
begin
 Teste := AdicionaHora(5);

Para usar Edits e Labels com esta function, precisamos fazer um TypeCast (Conversão de tipo) pois Labels e Edits tem a propriedade de texto (Caption e Text) do tipo TCaption que não é compatível com o tipo Integer. Para fazer este TypeCast usaremos a Function IntToStr(). Observe o exemplo:

  Label1.Caption := AdicionaHora(IntToStr(Edit1.Text));

Entendeu?

Qualquer dúvida, pode perguntar que a gente tenta ajudar!

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.