Wie gesagt, ob Record/Pointer oder Object, ist doch eigentlich egal,
aber wenn du z.B. noch "links" einführst, dann kannst da ganz schnell arbeiten, da von dem Object auf alle nötigen Elemente direkt zugegriffen werden kann.
ansonsten bleibt dir wohl nix anderes übrig, außer (im Notfall) die ganze Liste durchzugehn
Delphi-Quellcode:
TComp = Record/Object
...
Owner: ...;
Prev, Next: PComp;
End;
If Comp.Owner.FirstComp = Comp Then Comp.Owner.FirstComp := Comp.Next;
If Assigned(Comp.Prev) Then Comp.Prev.Next := Comp.Next;
If Assigned(Comp.Next) Then Comp.Next.Prev := Comp.Prev;
Comp.Free;
head entspricht hier wohl dem Owner