ciao Alka,
grazie per la risposta, il FreeAndNil che vedi dentro l'istruzione if precede un Exit il perche e' ovvio, se trova il riscontro esce dalla funzione, se invece non lo trova quel pezzo di codice non lo calcola e allora le libera da sotto, cmq in una procedura dove chiamavo questa funzione con un certo quantitativo di Bitmap, non ne liberavo due al termine, mi erano proprio sfuggite! e quelle ad ogni kiamata occupavano memoria e cosi dopo un po il programma sbottava, (dopo un ora due al massimo).
aspetto un paio di giorni per vedere se realmente erano queste due bmp la causa dei miei dolori, se cosi fosse metto risolto nel prim post.

Saluti.

P.S.: per il fatto di strutturare meglio le cose che scrivo sono daccordissimo con te, grazie del consiglio, come gia accennato nel primo post sono alle prime armi, piano piano anche io diventero' grande^^