How does ParentBackground work on IDE generated Forms?

delphi, tform

Solution

Self.ParentBackground := True;

compiles because a class can access its own protected members.

Problem

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.

Original source