Hallo,
ich habe gelesen mann muss den Speicher von Objekten wieder frei geben wenn man sie nicht mehr braucht. Sonst entstehen Speicherlöcher.
Problem:
Mein Programm beendet sich nach gewisser Zeit von selbst. Je schwächer der Rechner desto schneller. Daher die Vermutung es könnte hier dran liegen. Ich lade zu beginn des Programms Bilder in ein Array of TBitmap und gebe den Speicher nicht wieder frei.
Delphi-Quellcode:
var
bilder: array[0..36] of TBitmap;
begin
...
for i:=0 to anzahl do
begin
bilder[i] := TBitmap.Create;
bilder[i].LoadFromFile(inttostr(i)+'.bmp');
end;
...
end;
so jetzt benötige ich aber das array die komplette Laufzeit bis das Programm beendet wird, da ständig Bilder verglichen werden.
Folgende Fragen:
1. Wann soll ich jetzt den Speicher freigeben? (bilder[i].free)
2. Wenn ich es nicht tue entsteht dann ein Speicherleck?
3. Gilt das gleiche auch für InI - Objektte? Von denen hab ich nämlich auch noch.
Vielen Dank