This code works fine with an IDE generated form in a VCL Forms Application:
Self.ParentBackground := True;
But why? None of the ascendants (TForm
, TCustomForm
, TScrollingWinControl
) publish the protected ParentBackground
property of TWinControl
. The type declaration for the form (f.i. 'TForm1') at the top of the unit, does not either. Indeed, as expected, this
TForm(Self).ParentBackground := True;
does not compile ("Cannot access protected symbol TWinControl.ParentBackground"). Same with any form created at runtime.
Note: The question is not about how can I set the property (BTW, there are others, like 'Bevel[xxx]'), I'd like to know how does this work.
Self.ParentBackground := True;
compiles because a class can access its own protected members.