Hat nichts mit der
DP-Collection zu tun, aber sollte man nicht besser AssignTo statt Assign überschreiben? Ist mit Free/Destroy vergleichbar, Assign/Free prüft den Pointer auf nil, dann wird das vom Programmierer überschriebene AssignTo/Destroy aufgerufen.