コンポーネントの利用:インデックス
統合開発環境(IDE)では、多くのコンポーネントがツール パレットに用意されています。 [ツール パレット]でコンポーネントを選択し、フォームやデータ モジュールにドロップします。 ボタンやリスト ボックスなどのビジュアル コンポーネントをフォーム上に配置して、アプリケーションのユーザー インターフェイスを設計します。 データ アクセス コンポーネントなどの非ビジュアル コンポーネントも、フォームやデータ モジュールに配置できます。
Delphi のコンポーネントは一見すると、他のクラスとまったく区別が付きません。 しかし、Delphi のコンポーネントと、多くのプログラマが扱う標準クラスの階層構造との間には、いくつかの違いがあります。 主な相違点は次のとおりです:
- Delphi のコンポーネントはすべて TComponent クラスから派生しています。
- コンポーネントは、多くの場合、サブクラスを作成して機能を追加または変更するための "基底クラス" としてではなく、そのままの形で利用され、プロパティを介して変更されます。 コンポーネントを継承するとしても、通常は、既存のイベント処理メンバ関数に特定のコードを追加することが目的です。
- コンポーネントを割り当てられる先はヒープだけです。スタックには割り当てられません。
- コンポーネントのプロパティには、本質的に実行時型情報が含まれます。
- コンポーネントは、IDE の[ツール パレット]に追加し、フォームで操作できます。
コンポーネントは、多くの場合、標準クラスによく見られるものよりも高度なカプセル化を実現します。 たとえば、プッシュ ボタンを持つダイアログを使用すると仮定します。 VCL コンポーネントを使って開発された Windows プログラムの場合、ユーザーがボタンをクリックすると、システムが WM_LBUTTONDOWN というメッセージを生成します。 プログラムは、このメッセージを受け取り(一般には switch 文、メッセージ マップ、および応答テーブルにより受け取り)、メッセージに応答して実行されるルーチンにディスパッチします。
Windows メッセージ(VCL)の大部分は、Delphi のコンポーネントによって処理されます。 メッセージに応答する処理を行うには、イベント ハンドラを記述するだけで済みます。
トピック