He hecho una prueba simulando tu entorno y ha funcionado como se espera.
He creado esta tabla:
Código SQL
[-]CREATE TABLE TBPRU01 (
ID INTEGER,
NOMBRE VARCHAR(64),
FECHA DATE,
HORA TIME
);
Y en un formulario he puesto un maskedit igual que el tuyo para probar, este es el resultado:
En un botón va esto:
Código Delphi
[-]procedure TForm2.Button2Click(Sender: TObject);
var
iID :integer;
cNombre :string;
begin
iID := random(100000);
cNombre := 'Nombre '+inttostr(iID);
IBQuery1.Close;
IBQuery1.SQL.Text := 'INSERT INTO tbPru01 (id, nombre, fecha, hora) VALUES (:Id, :nombre, :fecha, :hora)';
IBQuery1.Params[0].AsInteger := iID;
IBQuery1.Params[1].AsString := cNombre;
IBQuery1.Params[2].AsDate := date;
IBQuery1.Params[3].AsTime := StrToTime( MaskEdit1.Text );
IBQuery1.ExecSQL;
IBDataSet1.Refresh;
end;
Espero que te sirva.