TPageControl
の子孫がtsTabs
以外のStyle
プロパティを持たないようにします。TPageControl:Styleプロパティの変更を防止する方法
一見、SetStyle
を無効にしようとしましたが、基本クラスでプライベートと宣言されています。誰もがアイデアを持っている
TPageControl
の子孫がtsTabs
以外のStyle
プロパティを持たないようにします。TPageControl:Styleプロパティの変更を防止する方法
一見、SetStyle
を無効にしようとしましたが、基本クラスでプライベートと宣言されています。誰もがアイデアを持っている
TPageControl
あなたが求めていることをネイティブにサポートしていません。
Style
プロパティを再宣言していて、その後、何もせずセッター出口を持っている:あなたが求めているものを達成するために、あなたはどちらかしなければなりません。ただし、コンポーネントのユーザーが本当にアクセスしたい場合、継承されたStyle
プロパティは実行時に技術的にアクセス可能です。はTPageControl
が行うすべてのものをTCustomTabControl
代わりにTPageControl
からコンポーネントを引き出すと、再実装が、保護されたStyle
プロパティを促進することなく。ただし、コンポーネントのユーザーが本当にアクセスしたい場合、継承されたStyle
プロパティは実行時に技術的にアクセス可能です。
コンポーネントが仮想CreateParams()
メソッドをオーバーライドし、TCS_TABS
ウィンドウスタイルを強制的にTCreateParams.Style
フィールドに追加します。 Style
プロパティには、ユーザーが割り当てた値(TabPosition
プロパティの動作にも影響します)が残りますが、少なくとも基礎となるウィンドウは常にtsTabs
スタイルが使用されているかのように動作します。
実行時に直接TCustomTabControl.SetStyle()
をフックして何もせずにリターンするための迂回ライブラリを使用します。
@kobik:どのプロシージャ/関数/メソッドも実行時にフックすることができます。そのトリッキーな部分は、そのメモリアドレスを取得することにあります。プライベートメソッドに対してもそれを行う方法があります。 –
いくつかの自己拘束機能を使用してください。 –
私はTCustomPageControlが利用可能であると期待していました。しかし、非です。関連するQを参照してください。[どのようにして子孫コンポーネントからプロパティを削除しますか?](http://stackoverflow.com/questions/15961579/how-do-you-remove-a-property-from-a-descendent-コンポーネント) – kobik
@kobik: 'TPageControl'は' TCustomTabControl'から派生しています。しかし、いずれにしても、そのリンクに記述されている技術のほとんどは設計時にプロパティを隠すだけですが、プロパティは実行時にコードにアクセスできます。 –