Duvida Delphi? [RESOLVIDO]

Galera, teho que fazer uma funcão que calcule o tempo decorrido,
porem tem que ser com registro. Mas não estou conseguindo fazer
os calculas dentro da função, no caso eu teria que calcular os ss, mm, hh
decorrido, eu fiz hf- hi apenas para testar mais não ta dando certo, no caso eu
precisaria calcular o tempo…

grato pela ajuda.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type TTempo = record
           hh: integer;
           mm: integer;
           ss: integer;
           end;
type V2T = array [1..2]of TTempo;

var
   tempo: V2T;
   inicial, final, resultado: TTempo;

function CalculaTempo (hi, hf:TTempo): TTempo;
begin
 resultado:= hf.hh - hi.hh; ----------erro aqui;




 CalculaTempo:= resultado;
end;


begin
  writeln ('Escreva as H iniciais..:');
     readln (tempo[1].hh);
  writeln ('Escreva os M iniciais..:');
    readln (tempo[1].mm);
  writeln ('Escreva os S iniciais..:');
    readln (tempo[1].ss);
    inicial := tempo[1];

      writeln ('Escreva as H iniciais..:');
     readln (tempo[2].hh);
  writeln ('Escreva os M iniciais..:');
    readln (tempo[2].mm);
  writeln ('Escreva os S iniciais..:');
    readln (tempo[2].ss);
    final := tempo[2];
    resultado := CalculaTempo(inicial, final);

end.

Crie um método que converta horas, minutos e segundos para apenas segundos. Crie outro método que pegue segundos e converta para horas, minutos e segundos.

Quando for efetuar a diferença de dois tempos, converta tudo para segundos, efetue a subtração, e então converta para horas, minutos e segundos.

thingol, mais no caso do meu exercicio eu teria que passar para a função o registro, tipo não posso conveter para segundos, como vc sugeriu, o meu problema é que eu não consigo manipular o registro dentro da função, da o erro:

[Error] Project1.dpr(21): Incompatible types: ‘TTempo’ and ‘Integer’

e eu não consigo resolver. o que q estou fazendo de errado?

grato thingol pela sua ajuda.

Pode sim.

Seu problema, nesse caso, é que você está subtraindo dois campo hora (que são inteiros), e tentando atribuir o resultado para a variável “resultado” que é do tipo tempo.
Então, vc deveria fazer:

Ou trocar o tipo da variável resultado para Integer.

Entretanto, isso não resolve seu problema. Eu faria o que o thingol falou. Crie primeiro uma função que receba um TTempo e converta para segundos. E outra que receba um valor em segundos e converta novamente para um TTempo.

ViniGodoy , Consegui fazer, eu estava errando no codigo:

resultado.hh := hf.hh - hi.hh;  

agradeço voces.