Gracias lepe y ferrari por su ayuda, estuve unos dias mobiendole a ese problema y nomas nada y lo deje por la paz un rato que hasta ya se me habia olvidado jajajja, ahora despues ya de un buen rato que paso, me puse a pegarle a ese asunto ya lo resolvi lo unico que hice fue comparar las horas en variables double como lo tengo en la base de datos doubleprecision y con esto ya porfin salio
if hentrada > hsalida then
begin
iqrHorasCALC_HORAS.Value :=
CompareTime(iqrHorasCALC_HENTRADA.Value,iqrHorasCALC_HSALIDA.Value);
end
else
begin
iqrHorasCALC_HORAS.Value := HoursBetween(FloatToDateTime(iqrHorasHENTRADA.AsFloat),FloatToDateTime(iqrHorasHSALIDA.AsFloat));
end;