Il db è paradox e non c'è nessun componente particolare, la procedura viene chiamata ne change di un campo del db in una dbgrid.

Questo è il codice originale che alla riga nera torna come in un loop al begin, fino all'errore:

procedure TFormFattureSemplici.TableFattureSempliciScontoCha nge(Sender: TField);
var PrezzoScontato:Real;
begin
PrezzoScontato:=TableFattureSempliciPrezzo.Value-(TableFattureSempliciPrezzo.Value/100)*TableFattureSempliciSconto.Value;
TableFattureSempliciImponibile.Value:=PrezzoSconta to*TableFattureSempliciQuantit.Value;
TableFattureSempliciTotale.Value:=PrezzoScontato*T ableFattureSempliciQuantit.Value;
TableFattureSempliciPrezzoIvato.Value:=TableFattur eSempliciTotale.Value+TableFattureSempliciTotale.V alue/100)*TableFattureSempliciCodiceIVA.Value;
end;


Questo è quello che sto modificando cercando di aggirare il problema, quì alla riga nera torna come in un loop al begin e dopo svariate volte da l'errore:

procedure TFormFattureSemplici.TableFattureSempliciScontoCha nge(Sender: TField);
var PrezzoScontato,Imponibile,Totale:Currency;
begin
Imponibile:=0;
Totale:=0;
PrezzoScontato:=TableFattureSempliciPrezzo.Value-(TableFattureSempliciPrezzo.Value/100)*TableFattureSempliciSconto.Value;
Imponibile:=PrezzoScontato*TableFattureSempliciQua ntit.Value;
// TableFattureSempliciImponibile.Value:=PrezzoSconta to*TableFattureSempliciQuantit.Value;
TableFattureSempliciImponibile.Value:=Imponibile;
TableFattureSempliciTotale.Value:=Imponibile;//PrezzoScontato*TableFattureSempliciQuantit.Value;
//TableFattureSempliciPrezzoIvato.Value:=TableFattur eSempliciTotale.Value+(TableFattureSempliciTotale. Value/100)
// *TableFattureSempliciCodiceIVA.Value;
TableFattureSempliciPrezzoIvato.Value:=totale+(tot ale/100)*TableFattureSempliciCodiceIVA.Value;
end;