So für alle die es interessiert: Ich hab es endlich geschafft
Und zwar frag jetzt jedes Auto selber ab ob es gelöscht werden kann und stellt einen Löschantrag an die Steeuerung.
Diese sieht jetzt so aus:
Delphi-Quellcode:
procedure TSteuerung.Loeschen(Sender:TObject);
var i:Integer;
begin
i:=-1;
// Typ abfragen
if Sender is TAutoVonUnten then i:=0
else if Sender is TAutoVonRechts then i:=1
else if Sender is TAutoVonOben then i:=2
else if Sender is TAutoVonLinks then i:=3;
if i>=0 then
begin
// Auto löschen und aus der Variable des Hintermannes löschen
TAuto(hAuto[i].Extract(Sender)).Destroy;
// Items[0] ist zwingend der erste Autofahrer nach der andere gelöscht ist
if hAuto[i].Count>0 then TAuto(hAuto[i].Items[0]).SetzeAuto(nil);
end;
end;
Danke nochmal an alle beteiligten!