delphi.gif (306 バイト) コンポーネントクラスの派生


 

コンポーネントを作るときは既存のコンポーネントクラスから派生させます。

種類 基本クラス
既存コンポーネントの変更や機能追加 TButtonなどかTCustomListBoxなどの抽象コンポーネント
独自コントロール TWinControl,TCustomControl
グラフィックコントロール TGraphicControl
Windowsコントロールのサブクラス作成 Windowsコントロール
非ビジュアルコンポーネント TComponent

 

toach.gif (917 バイト) 既存コントロールの変更

TListBoxなど既存コントロールに機能を追加するには、TListBoxからクラスを派生させます。一方、TListBoxから一部のプロパティを削除して、特殊化したリストボックスコントロールを作りたいときなどは、TCustomListBoxを使ってクラスを派生させます。

 

toach.gif (917 バイト) ウィンドウコントロールの作成

ウィンドウコントロールは、ウィンドウハンドルを持ち、フォーカスを受け取ることのできるコントロールです。TEditやTButtonなどはTWinControlの派生クラスです。独自のウィンドウコントロールを作るとき、TWinControlから直接、クラスを派生させる方法もありますが、ビジュアルイメージを描画しやすくするためのTCustomControlクラスも用意されています。

 

toach.gif (917 バイト) グラフィックコントロールの作成

コントロールがフォーカスを受け取る必要がない場合は、(軽量でリソース消費の少ない)グラフィックコントロールを作成できます。グラフィックコントロールはPaintメソッドでCanvasに描画するだけで簡単に作れます。

 

toach.gif (917 バイト) ウィンドウコントロールのサブクラス作成

従来の(OLEコントロール以前の)Windowsプログラミングでカスタムコントロールを作成するときは、新しいウィンドウクラス(Delphiのクラスとは直接関係ない)を定義してWindowsに登録します。新しいウィンドウクラスは既存のウィンドウクラスに基づいて作成され、これをサブクラス化といいます。

Delphiでは既存のWindowsコントロールの周りにWrapperを作ることによってコンポーネントを作ることができます。

 

toach.gif (917 バイト) 非ビジュアルコンポーネントの作成

Timerコンポーネントなどのような実行時に非表示になるコンポーネントは、TComponentから直接、派生させます。