コンポーネントクラスの派生
コンポーネントを作るときは既存のコンポーネントクラスから派生させます。
種類 | 基本クラス |
既存コンポーネントの変更や機能追加 | TButtonなどかTCustomListBoxなどの抽象コンポーネント |
独自コントロール | TWinControl,TCustomControl |
グラフィックコントロール | TGraphicControl |
Windowsコントロールのサブクラス作成 | Windowsコントロール |
非ビジュアルコンポーネント | TComponent |
既存コントロールの変更
TListBoxなど既存コントロールに機能を追加するには、TListBoxからクラスを派生させます。一方、TListBoxから一部のプロパティを削除して、特殊化したリストボックスコントロールを作りたいときなどは、TCustomListBoxを使ってクラスを派生させます。
ウィンドウコントロールの作成
ウィンドウコントロールは、ウィンドウハンドルを持ち、フォーカスを受け取ることのできるコントロールです。TEditやTButtonなどはTWinControlの派生クラスです。独自のウィンドウコントロールを作るとき、TWinControlから直接、クラスを派生させる方法もありますが、ビジュアルイメージを描画しやすくするためのTCustomControlクラスも用意されています。
グラフィックコントロールの作成
コントロールがフォーカスを受け取る必要がない場合は、(軽量でリソース消費の少ない)グラフィックコントロールを作成できます。グラフィックコントロールはPaintメソッドでCanvasに描画するだけで簡単に作れます。
ウィンドウコントロールのサブクラス作成
従来の(OLEコントロール以前の)Windowsプログラミングでカスタムコントロールを作成するときは、新しいウィンドウクラス(Delphiのクラスとは直接関係ない)を定義してWindowsに登録します。新しいウィンドウクラスは既存のウィンドウクラスに基づいて作成され、これをサブクラス化といいます。
Delphiでは既存のWindowsコントロールの周りにWrapperを作ることによってコンポーネントを作ることができます。
非ビジュアルコンポーネントの作成
Timerコンポーネントなどのような実行時に非表示になるコンポーネントは、TComponentから直接、派生させます。