Dann ist -schwuppdiwupp- Die eine PageControl verschunden und die andere Sichtbar.

Woher weiß das Ding daß ich die Eigenschaft verändert habe?
Wie schon gesagt, die Variable Visible ist eine Eigenschaft. Eigenschaften können besondere Funktionen gegenüber normalen Variablen aufweisen. Z.B. wie in deinem Fall: Können sie die "Komponente", in diesen Fall das PageControl benachrichtigen, dass sich etwas verändert hat und ein komplettes neuzeichnen bewirken. Um ein PageControl unsichtbar oder sichtbar zu machen ist in jedenfall ein nezeichnen der Anwendung nötig.
Um noch eins drauf zu setzten: Das PageControl ist eine Komponente die keine eigene Komponente von Lazarus ist. Sie wird vom unterliegenden Toolkit zuverfügung gestellt. Z.b. von GTK oder von Windows. Eine eigene Komponente von Lazarus währe z.b. das Panel oder das HeaderControl(Einblick in die Zeichen Methode, beweist das eindeutig.).
Es gibt verschiedene Arten von Eigenschaften. Es gibt welche die nur ausgelesen werden können(ReadOnly). oder welche die geschrieben und gelesen werden können. Es gibt auch welche die ein Array übergeben werden kann z.b. so: property items[index:Integer]:Integer read GetItems.
Wobei hier können auch noch verschiedene Parameter angeben werden: property items[index:Integer; str:String]:Integer read GetItems.
Eigenschaften sind recht Sinnvoll. Ich nutzte sie nur noch in meinen Eigenen Klassen. In Verbindung mit Events haben sie sogar noch ein Vorteil. Bei setzten einer Eigenschaft könnte auch ein oder mehrere Events aufgerufen werden, auf die der User reagieren kann.
Ich meine in TP7.0 war das noch anders Implementiert als es heute in FPC der Fall ist. Gab es dort nicht Objekte die mit New erzeugt werden mussten ?
Oder hatte es schon einen kompletten OOP Aufsatz ?