Originariamente inviato da colde
premesso che una procedura differisce da una funzione poichè quest'ultima può accettare e restituire un valore mentre la procedura accetta solo valori in ingresso
Sia le procedure che le funzioni accettano valori in ingresso (detti "parametri" o "argomenti"); l'unica differenza è che le funzioni restituiscono un valore di ritorno, le procedure no.

Originariamente inviato da colde
mettiamo il caso di avere una funzione che accetta e restituisce parametri e che questa funzione richiami una procedura "TTimer.OnEvent". Questa procedura serve per far partire il timer che crea una stringa in modo tale che a ogni secondo viene aggiunto un carattere alla stringa stessa; è possibile passare alla funzione la stringa completa creata a fine procedura?
Spero di essere stato chiaro.
Qualsiasi parametro passato ad una funzione o ad una procedura può essere modificato; generalmente, quando si modifica un parametro all'interno di una routine e si effettua il ritorno da questa, le modifiche apportate al valore vanno perse.

Dichiarando il parametro facendolo precedere dalla parola chiave var, qualsiasi modifica ad esso all'interno della routine viene mantenuta anche al ritorno.

Fa parte dell'ABC del linguaggio Pascal. E' la tematica del passaggio di parametri per valore o per riferimento, per cui trovi fiumi di documentazione ovunque, ivi compresa la documentazione di Delphi sul linguaggio.

Ciao!