クラスに新しい機能を追加する
コンポーネント開発者のためのオブジェクト指向プログラミング:インデックス への移動
新しいコンポーネントを作成する一般的な理由の 1 つは,既存のコンポーネントが備えていない機能の追加です。この場合には,新しいコンポーネントを既存のコンポーネントから派生させるか,TComponent や TControl などの抽象基本クラスから派生させるかのどちらかの方法をとります。
新しいコンポーネントは,必要な機能に最も近い機能のサブセットを備えたクラスから派生させます。クラスに対して機能を追加することはできますが,クラスから機能を取り去ることはできません。したがって,既存のコンポーネントクラスに,開発するコンポーネントに含めたくないプロパティが入っている場合には,そのコンポーネントの上位クラスから派生させる必要があります。
たとえば,リストボックスに機能を追加する場合には,TListBox からコンポーネントを派生させることができます。ただし,ある新しい機能を追加するだけでなく,標準リストボックスのある種の機能は除去したいという場合には,TListBox の上位クラスである TCustomListBox からコンポーネントを派生させます。この場合,リストボックスの機能のうち必要なものだけ再作成します。そして,新しい機能を追加します。
グリッドのカスタマイズでは,抽象コンポーネントクラスをカスタマイズする例について説明します。