Quizás el problema sea que no se está configurando el tipo de dato adecuado. Propongo:
Código Delphi
[-]
ADO1.Parameters.ParamByName('horafactu').DataType := ftDateTime;
ADO1.Parameters.ParamByName('horafactu').Value := Mfechahora;
Edito: No me di cuenta que habían varias paginas del tema y que la solución ya había sido propuesta.