Hola gonza.
Según creo querés pasar un tipo Real a TTime, al menos en Delphi 7 no conozco una función predeterminada para hacerlo.
Pero podés pasar todo a milisegundos y sacar hora, minuto y segundos y luego convertir con DecodeDate.
Código Delphi
[-]
...
uses DateUtils;
function FloatToTime(Value: Extended): TTime;
var
h,m,s,ms: Word;
aux: Cardinal;
begin
aux:= Trunc(Value)*3600000 + Trunc(Frac(Value)*3600000);
h:= aux div 3600000;
Dec(aux, h * 3600000);
m:= aux div 60000;
Dec(aux, m * 60000);
s:= aux div 1000;
Dec(aux, s * 1000);
Result:= EncodeTime(h,m,s,0);
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(TimeToStr(FloatToTime(10.551))); end;
Los milisegundos no los consideré, supongo que para horarios de entrada/salida no serán significantes.
Aunque lo podés implementar ampliando un poco el código.
Saludos.