Es que sin saber lo que son esas variables, lo que estás haciendo, ni el contexto de tu código... es difícil ayudarte. A ver...
¿id_inal es texto o número?, acláralo
¿auxcantidad_inal es texto o número?, acláralo
Suponiendo que ambos son números (como debe ser) y haciendo las cosas paso a paso:
Código Delphi
[-]var
fCantidad : double;
iAlmacen : integer;
begin
iAlmacen := strtoint(idprod.text);
_DM.consulta1.Close; _DM.consulta1.SQL.Text:= 'select * From inalmacen Where id_inal='+iAlmacen;
_DM.consulta1.Open;
fCantidad := _DM.consulta1.FieldByName('cantidad_inal').Value - strtoFloat(cantidad.Text));
_DM.consulta1.Close;
_DM.consulta2.Close; _DM.consulta2.SQL.Text:= 'update INALMACEN set cantidad_inal=:auxcantidad_inal where id_inal= :auxid_inal';
_DM.consulta2.ParamByName('auxcantidad_inal').Value := fCantidad;
_DM.consulta2.ParamByName('auxid_inal').Value := iAlmacen;
_DM.consulta2.ExecSQL; _DM.consulta2.Transaction.commitretaining; _DM.consulta2.Close;
end;