Tu as certainement oublié un free quelque part.
Chaque fois que tu lances ton appli, c'est un nouveau process windows qui est créé. Donc si par hasard la mémoire utilisée par l'exécution précédente n'était pas libérée, ce serait la mémoire dispo sous windows qui diminuerait, pas la mémoire utilisée par ton appli.
Le CTRL+F2 peut perturber Delphi et son débogueur. Ca peut perturber ton appli si tu fais appel à des ressources persistante (genre définition de verrou dans des fichiers). Ca perturbe le BDE (Un CTRL+F2 et tu peux relancer Delphi).
En revanche, si au cours de son utilisation la mémoire occupée par ton appli augmente, c'est soit que tu as un memory leak, soit tu as réellement besoin de beaucoup de mémoire (ou que la mémoire est bien libérée, mais très tardivement).
Tu peux utiliser FastMM4 pour localiser les memoryleak. Si tu utilises BDS2006 ou suivant, tu peux positionner la variable globale :
ReportMemoryLeaksOnShutdown := true
Ca te permettra de savoir à la sortie de ton appli, s'il existait encore des blocs mémoires non libérés.
Partager