Code:
TButton > TCustomButton > TButtonControl > TWinControl > TControl > ...
TRadioButton > TButtonControl > TWinControl > TControl > ...
TCheckBox > TCustomCheckBox > TButtonControl > TWinControl > TControl > ...
Caption wurde in TControl eingeführt, aber noch nicht veröffentlich (protected).
Veröffentlicht (public/published) wurde es erst in den Endtypen.
Da alle Typen den selben Vorfahren haben, wo diese Option eingeführt wurde, kann man nun irgendeinen Typen nehmen, wo es veröffentlicht wurde, da dieses Property, bzw. sein Speicherplatz/Zugriff sich nicht verändert
Delphi-Quellcode:
If (obj is TButton) or (obj is TRadioButton) or (obj is TCheckBox) then
TButton(obj).Caption := 'huhu';
Der nächste gemeinsame Vorfahr wär TCustomButton:
Delphi-Quellcode:
If obj is TCustomButton then
TButton(obj).Caption := 'huhu';
Folgendes würde jetzt für alle Typen, welche von TControl abgeleitet wurden die Caption ändern.
Delphi-Quellcode:
If obj is TControl then
TButton(obj).Caption := 'huhu';
Hab hier intern einfach TButton genommen, da es TCustomButton logisch am Nächsten steht und schön kurz ist.
Delphi-Quellcode:
Type TCustomButtonCaptionAccesss =
Class(TCustomButton)
Public // oder Protected, wenn diese Deklaration in der gleichen Unit deklariert
Property Caption;
// wird, wo man auch drauf zugreifen will
End;
If obj
is TCustomButton
then
TCustomButtonCaptionAccesss(obj).Caption := '
huhu';