Yo creo que lo mas normal es hacer algo como:
Código:
Var
Llave : String;
Begin
Llave := dbGrid1.DataSource.DataSet.FieldByName('Llave').AsString;
dbGrid1.DataSource.DisableControls;
try
with dbGrid1.DataSource.DataSet do
Begin
First;
Suma := 0;
While (not eof) and not (FieldByName('Llave').AsString = Llave) do
Begin
suma := Suma + FieldByName('CampoNumerico').AsFloat;
Next;
End;
ShowMessage('Suma ' + FloatToStr(Suma));
End;
finally
dbGrid1.DataSource.EnableControls;
End;
End;
Hasta luego.