Delphi-Quellcode:
FOR i:=1 TO nummer DO
begin
FOR r:=1 TO number DO
begin
IF Raumschiff[r] <> nil THEN
begin
Raumschiff[r].GoRight;
ShRaumschiff[r].Left := Raumschiff[r].xCoord;
IF Raumschiff[r].xCoord > 700 THEN
begin
Raumschiff[r].xCoord := -50;
ShRaumschiff[r].Left := Raumschiff[r].xCoord;
end;
If (abs(Raumschiff[r].yCoord-Kugel[i].yCoord)<1) and
(abs(Raumschiff[r].xCoord-Kugel[i].xCoord)<1) then
begin
Raumschiff[r].Free; // Raumschiff r wird freigegeben und beim nächsten Durchlauf i+1 kracht es
Raumschiff[r] := nil;
Abgeschossen := Abgeschossen+1;
end;
end;
end;
[edit] das ist natürlich Mumpitz, denn Du prüfst ja auf <> nil im Schleifenbegin
Grüße
Klaus