Quote Originariamente inviata da uisum Visualizza il messaggio
Ciao .
Mi sembra la tua una risposta tanto per perdere o prendere tempo .
Innanzitutto, se non volevo perdere tempo, evitavo di 1) leggerti di nuovo, 2) cercare di capirti, 3) porti le stesse domande che ti sono già state rivolte per chiarire.

Sul "prendere tempo" invece sorvolo, in quanto non mi serve assolutamente: non sei un mio cliente e non sono tenuto a darti alcun servizio garantito, se permetti, e qualora ti si dia una mano, sei tu a doverti sforzare di fornire tutte le info necessarie visto che - fino a prova contraria - il problema è tuo, non mio.

Quote Originariamente inviata da uisum Visualizza il messaggio
Nessun errore il codice o meglio, il codice non mi aiuta a fare quello che voglio .
Se il codice non fa quello che vuoi, evidentemente un errore c'è, altrimenti il programma funzionerebbe.
Questo è forse l'unico punto fermo che si può dare per assodato.

Quote Originariamente inviata da uisum Visualizza il messaggio
Facendo il debug non mi dice niente , e un problema di procedura che non fa il suo dovere.
No, perché il risultato non è casuale: da qualche parte c'è senz'altro un passaggio in cui viene memorizzato un valore diverso da quello atteso, ma è analizzando il programma durante l'esecuzione che consente di vedere in ogni momento cosa si sta assegnando e come cambiano i valori all'interno dell'applicazione.

Il debug non è pensato per risolverti autonomamente il problema, ma per consentirti di verificare quello che succede.

Quote Originariamente inviata da uisum Visualizza il messaggio
Questo e il codice che uso attualmente , ma ad ogni clic mi aggiunge sempre il valore della somma.
Il tuo codice prende il valore di un campo, a esso somma un altro valore e infine lo salva.
E' ovvio che se riesegui la procedura il valore viene sommato all'ultimo salvato e così via, incrementandolo sempre.

Quote Originariamente inviata da uisum Visualizza il messaggio
La somma e giusta ma se si fa fare nuovamente la procedura viene nuovamente calcolato tutto e aggiunto a TTGiacenzaMangimeQtascarico.Value .
Ma questo è esattamente ciò che hai scritto nel codice! Se incrementi un valore che usi come partenza e poi lo vai a salvare, quando ripeti l'operazione partirai dalla quantità che è stata incrementata precedentemente, perché quello è il valore che hai determinato e salvato, ed è quello il valore da cui riparti, e non può essere diverso, a meno che tu non conservi altrove il valore di base (es. in un campo diverso). Devi separare il valore incrementato da quello di partenza, e aggiornare il primo partendo dal secondo, oppure resettare il campo che hai incrementato al valore base di partenza prima di eseguire la somma. Se sommi e salvi, recuperi, sommi e salvi, recuperi, alla fine avrai un valore che si incrementa sempre all'infinito.


Quote Originariamente inviata da uisum Visualizza il messaggio
codice:
procedure Tdett_form.calcolaGiacenza;
var
old_val : extended;
begin

old_val := datamod.TTGiacenzaMangimeQtascarico.Value; // questo campo deve ricevere i dati
//through some dataset...
DataMod.DettaglioP.First;
while not DataMod.DettaglioP.eof do
begin
  old_val := old_val + DataMod.DettaglioPKgMangimeSCARICO.Value; // questo campo raccoglie i // dati della tabella giornalieraMangimescarico
  DataMod.DettaglioP.Next;
end;
datamod.TTGiacenzaMangime.Edit;
datamod.TTGiacenzaMangimeQtascarico.AsFloat:=old_val; 
datamod.TTGiacenzaMangime.Post;
end;
Spero che hai capito adesso
By Simo
Sì, io ho capito.

Ciao!