Ver Mensaje Individual
  #8  
Antiguo 06-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
  // a Cardinal
  aux:= Trunc(Value)*3600000 + Trunc(Frac(Value)*3600000); 
  // hora
  h:= aux div 3600000;
  Dec(aux, h * 3600000);
  // minutos
  m:= aux div 60000;
  Dec(aux, m * 60000);
  // segundos
  s:= aux div 1000;
  Dec(aux, s * 1000);
  // a Time
  Result:= EncodeTime(h,m,s,0);
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(TimeToStr(FloatToTime(10.551))); // 10:33:06 a.m.
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.

Última edición por ecfisa fecha: 06-12-2010 a las 01:59:15.
Responder Con Cita