Schau dir einmal an wie du einen Typ in einen anderen castest. Dafür brauchst du is und as als Operatoren:
docwiki.embarcadero....nzen#Der_Operator_is
Der Konstruktor von TTabSheet hat als Owner den übergeordneten Typ TComponent. Da du den überschreibst, kannst du den Typ dort auch nicht ändern. Du kannst aber jederzeit mit as auf TPageControl casten.
Und genauso kannst du auch ActivePage auf TCloseTabSheet casten.
Leider habe ich im Moment nicht die Zeit das genauer zu erklären. Schau dir am besten einmal die Grundlagen objektorientierter Programmierung an. Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var a: TAuto; begin a := TMercedes.Create; ShowMessage((a as TMercedes).SternGröße); |
Sprich TMercedes ist von TAuto abgeleitet und die Instanz von TMercedes wird in TAuto gelegt. Dann kann man allgemein als TAuto (wie bei dir mit TTabSheet) damit arbeiten. Braucht man dann Eigenschaften von TMercedes, muss man auf den Typ casten.