Du hast ja mehrere Möglichkeiten in einer Klasse Sichtbarkeiten festzulegen. Dir steht dafür private, protected, public und published zur Verfügung. Wenn du nun in einer Klasse Dinge im private Abschnitt der Klasse deklarierst, dann definierst du, dass nur noch diese Klasse und keine abgeleitete Klasse und auch keiner von außen auf diese Daten zugreifen darf/soll. Bei dir mit Klasse1 und Klasse2 nutzt du dafür das Verhalten von Delphi aus, dass Klassen in einer
Unit alle zueinander verhalten wie friend Klassen. Das heisst, jede Klasse in der
Unit darf auch auf die private und protected Elemente der anderen Klassen von außen zugreifen.
So, das mal zur Theorie. Nun stellt sich bei deinem Problem die Frage: Warum hast du die Dinge im private Abschnitt definiert, wenn du sie doch von außen zugreifbar benötigst? Du könntest nun entweder die Daten in den Public Bereich verschieben oder mit Properties arbeiten, welche dir die Möglichkeit bieten die Private Elemente nach außen sichtbar zu machen und gleichzeitig dir alle Möglichkeiten zur Kontrolle der Zugriffe zu geben.
Die Frage ist nun: wodran liegt es? Falsches Design der Klassen oder fehlendes Wissen? Um zu einer Lösung zu kommen müssten wir wissen, was du erreichen willst. Warum sind die Daten private, müssen sie private sein, wenn ja, warum musst du dann mit Klasse3 drauf zugreifen?