La respuesta dada por
islu funciona, pero el problema es que, como asignamos el evento "OnCalcFields" mas tarde, tenemos que hacer un refresco o un desplazamiento en el DataSet para que se actualice el valor del campo calculado. (Esto lo comento en base a una pequeña prueba que hice sobre el tema).
Así que la asignación del evento quedaría, por ejemplo, así
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.OnCalcFields := CalcField;
Table1.First; end;
Saludos!