Das geht nur wenn deine List-Klasse in der selben
Unit überschrieben wird und deren Methoden wie Delete() umgebogen werden. Dann kannst du dort auf Protected- und Private-Deklarationen der List-Klasse auch aus der
TCP-Klasse aus zugreifen. Außerhalb dieser
Unit aber nicht.
Besser wäre es wohl aber, deiner Klasse eine indizierte Getter-Property zu verpassen.
Allgemein halte ich das Konzept aber für irrig. Denn meiner Erfahrung nach kann man sich auf den Kopf stellen, wenn der Anwender etwas nicht darf sucht er sich seine Wege oder sucht sich eine andere Lösung. Fange Fehlersituationen durch ungeplante externe Löschungen intern durch Exceptions und/oder Events ab.