Das hat mr47 doch erklärt.. ein Speicherleck entsteht dann, wenn ein Programm Speicher reserviert, ihn aber nicht wieder freigibt. Der nicht freigegebene Speicher steht dann halt nicht mehr zur Verfügung, auch wenn er gar nicht mehr von dem Programm gebraucht wird, dass ihn reserviert hat. Kommt sowas sehr oft vor wird der Speicher eben irgendwann knapp.
Also: selbst erstellte Objekte [.Create;] schön immer wieder freigeben [.Free; / FreeAndNil();]
Viele Grüße,
Sebastian