Delphi Tips 
-----------------------------

0102  D1   D2   D3   D4   D5   D6   D7   3.1   95   98    作成: 1999/02/08 osamu rev 1.1
   B1   B3   B4   B5   B6   B7   NT3   NT4   2K   XP  更新: 1999/02/08 osamu 編集
親の published プロパティを子クラスで隠蔽する

Object Pascal では、クラスの継承時に親クラスで指定されたアクセス指定子よりも厳しいアクセス指定子をメンバに指定しても無視されてしまいます。従って、親クラスで public に指定されたメンバを子クラスで protected にするようなことは出来ません。
これは、published も同じで、一度公開されたものを元に戻すことはできないのですが、単に「オブジェクト・インスペクタに表示させない」だけならば、「読み込み専用のプロパティ」として再宣言することで、オブジェクトインスペクタに表示しないようにすることができます。

例:AutoScrollプロパティを読み込み専用にする。

  THogeScrollBox = class(TScrollBox)
  private
    function GetAutoScroll: Boolean;
  published
    property AutoScroll: Boolean read GetAutoScroll;
  end;

  function THogeScrollBox.GetAutoScroll: Boolean;
  begin
    Result := inherited AutoScroll;
  end;

※当然、イベントも同じ方法で隠すことが出来ます。
参照: [Delphi-ML:21207] <コンポーネント開発>

[新規作成] [最新の情報に更新]

How To
Lounge
KeyWords


Tips
Delphi
Home
Osamu Takeuchi osamu@big.or.jp