Hi,
Ich habe in meinem Projekt eine TObjectlist in der ich mehrere Objekte speichere um sie dann zu verwenden.
DIe OBjekte füge ich so hinzu:
Delphi-Quellcode:
Animationen:TObjeclist;
...
...
tempani : Tanimation;
begin
...
...
for x:=0 to 8 do
for y:=0 to 8 do
if spiel.sdk.feld[x,y]<>0 then begin
tempani:=Tanimation.create(bmp2.Canvas.Pixels[spiel.feldbreite*x+(spiel.feldbreite div 2),
spiel.feldbreite*y+(spiel.feldbreite div 2)],
bmp.Canvas.Pixels[spiel.feldbreite*x+(spiel.feldbreite div 2),
spiel.feldbreite*y+(spiel.feldbreite div 2)],
3,
point(x,y));
Animationen.add(Tempani);
dann hab ich einen timer in dem ich die Objekte bearbeite:
Delphi-Quellcode:
procedure TForm1.AnimationstimerTimer(Sender: TObject);
var i ,x,y: integer;
begin
i:=0;
while (i < Animationen.Count)
do
begin
inc((Animationen[i]
as TAnimation).
index);
if (Animationen[i]
as TAnimation).
index > animation.anzfarbe
then begin Animationen.Delete(i);
dec(i);
end
else begin
//tue dies und das
end;
inc(i);
end;
if animationen.Count=0
then begin
//ebenso dies und das
Animationstimer.Enabled:=false;
end;
end;
SO mein Problem ist, dass wenn ich öfters hintereinander die obere Prozedur ausführe ich einen haufen Fehlermeldungen bekomme. Und zwar steht auf allen folgendes: "Für diesen Befehl ist nicht genügend Speicher verfügbar". Ich hab daher die vermutung das irgendwo speicherüberreste von den gelöschten Objekten der Liste übrig bleiben. Ich hab aber eigentlich gedacht, dass sich die Tobjectliste um alles kümmert und man selber nichts mehr weiter tun muss ausser delete auszuführen.
Hat jemand eine Ahnung was hier falsch läuft?
danke schonmal im vorraus