Hola
Lo mas seguro es que me equivoque, pero:
1- La sentencia sql seguro la tienes dentro del query y en la pantallita tendras el campo?.
2- Si ves la secuencia que usas, veras que cierras la tabla antes de darle el parametro (QSuma.Close

eso no es correcto.
Yo lo haria por codigo asi:
Código Delphi
[-]
procedure TFormPresupuestos.CalcularTotal;
var
total: real;
begin
QSuma.Sql.Text:= 'Select sum(Importe) as ST from presprod where Codpres = :res group by Codpres ';
QSuma.Params[0].AsInteger:=TPresupuestosIdpres.AsInteger;
QSuma.Open;
ShowMessage(VarToStr(QSumaST.Value));
total:=QSuma.Files[0].AsFloat;
ShowMessage(FloatToStr(total));
TPresupuestosSumaTotal.AsFloat:=total;
end;
Saludos