Also das ist so:
Delphi-Quellcode:
// Die Objekte
T3DCollideObj= class(T3DObj)
T3DMoveObj= class(T3DCollideObj)
T3DBlock = class(T3DMoveObj)
// das entfernen der Objekte:
For i := 0 To Objects.Count - 1 Do
T3DObj(Objects[i]).Free;
//Die Stelle wo ich den Fehler bemerkt hab:
WorldActor : T3DBlock;
// wenn ich hier "Auswerten / Ändern" auf WorldActor anwende, ist das nicht nil,
// aber es wurde eindeutig etwas daran geändert, weil
// 1.) WorldActor.Free; zu einem Fehler führt
// 2.) Variablen von WorldActor danach zufallswerte haben
// If T3DObj(WorldActor) <> nil then // die kann weg (ist mir grad eingefallen)
WorldActor.Free;
WorldActor := T3DBlock.Create;
EDIT: WorldActor ist nur einesunter vielen Objekten, das verwendet wird.
Genau genommen gibts WorldActor nur einmal