Efectivamente, como dijo Juanelo ese era el problema primero borraba y luego calculaba, lo tengo asi ahora y va de 10:
Código Delphi
[-]procedure TFFacturar.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DELETE then
begin
if ClientDataSet1.RecordCount > 0 then
begin
Total.Text := FLoatToStr(StrToFloat(Total.Text) - ClientDataSet1.Fields[9].AsInteger);
end;
if ClientDataSet1.IsEmpty then
begin
Total.Text := '0.00';
end;
dsFactDetalle.DataSet.Delete;
end;
end;
Gracias a ambos por su tiempo, Saludos.