4

このコードは、VCLフォームアプリケーションでIDEによって生成されたフォームで正常に機能します。

Self.ParentBackground := True;


しかし、なぜ?アセンダント(、、)はいずれも、TFormTCustomForm保護TScrollingWinControlされたParentBackgroundプロパティを公開していませんTWinControl。ユニットの上部にあるフォーム(fi'TForm1')の型宣言も、そうではありません。確かに、予想通り、これは

TForm(Self).ParentBackground := True;

コンパイルされません(「保護されたシンボルTWinControl.ParentBackgroundにアクセスできません」)。実行時に作成されるすべてのフォームと同じです。


:問題は、プロパティをどのように設定できるかではありません(BTW、「Bevel [xxx]」などの他にもあります)。これがどのように機能するかを知りたいです。

4

2 に答える 2

7
Self.ParentBackground := True;

クラスは独自の保護されたメンバーにアクセスできるため、コンパイルされます。

于 2012-08-22T19:23:11.183 に答える
4

しかし、TForm1(Self).ParentBackground動作します。TForm1違いは、 (にSelf属する)クラスが同じユニットで宣言されていることです。そうすれば、保護されたメンバーに実際にアクセスできます。

于 2012-08-22T19:22:44.117 に答える