El ejemplo que puse debe funcionar tal cual. La componente TDataSet, y cualquiera de sus descendientes, tiene a FieldValues como propiedad por default. Realmente no sé que se supone que es Dts_PedidosDetalle ni tampóco sé por qué usa éste en lugar del parámetro DataSet que pasa el evento OnCalcFields.
Otra cosa es que no sea muy eficiente usar FieldValues por el uso de variants. Para optimizar habría que poner algo como
Código Delphi
[-]
DataSet.FieldByName('Sub_total').AsFloat :=
DataSet.FieldByName('Cantidad_Pedido')*DataSet.FieldByName('Precio_Unitario_Articulo');
// Saludos