Das Problem steckt sieht doch so vereinfacht aus:
Delphi-Quellcode:
var obj1, obj2 : TAuto;
begin
obj1 := TAuto.Create;
obj2 := obj1;
//obj2 = obj1 - obj1 und obj2 zeigen auf dasselbe Auto im Speicher
//sind jedoch zwei verschiedene variablen, eben nur mit demselben Inhalt
obj1.Fahre;
//ok
obj2.Fahre;
//ok
obj1.Free;
obj1 :=
nil;
if Assigned(obj1)
then //False
obj1.Fahre;
if Assigned(obj2)
then //true
obj2.Fahre;
//AV
end;