ActiveX コントロールの構成要素

提供: RAD Studio
移動先: 案内検索

ActiveX コントロールの利用:インデックス への移動

ActiveX コントロールには多くの要素が含まれており,それぞれが特定の機能を実行します。これらの要素は,VCL コントロール,およびプロパティ,メソッド,イベントをエクスポーズする対応する COM オブジェクトラッパー,そして関連付けられた 1 つまたは複数のタイプライブラリなどです。

VCL コントロール

Delphi では,VCL コントロールを土台として ActiveX コントロールを実装します。ActiveX コントロールを作成する場合は,その土台になる VCL コントロールをまず設計または選択しなければなりません。

基底の VCL コントロールは TWinControl の下位オブジェクトでなければなりません。なぜなら,ホストアプリケーションを親にできるウィンドウを持たなければならないからです。ActiveForm を作成すると,このオブジェクトは Vcl.AxCtrls.TActiveForm の子孫になります。

メモ:  ActiveX コントロールウィザードは,ActiveX コントロールを作成するために選択可能な TWinControl の子孫をリストします。ただし,TWinControl の子孫がすべてこのリストに表示されるわけではありません。THeaderControl など一部のコントロールは,(RegisterNonActiveXprocedure を使って)ActiveX と互換性がないものとして登録されるので,リストには表示されません。

ActiveX ラッパー

実際の COM オブジェクトは,VCL コントロール用の ActiveX ラッパーオブジェクトです。Active フォームの場合,そのクラスは必ず axctrls.TActiveFormControl です。ほかの ActiveX コントロールの場合,名前は TVCLClassX の形式になります(TVCLClass は VCL コントロールクラスの名前)。したがって,たとえば TButton 用の ActiveX ラッパーならば,名前は TButtonX になります。

ラッパークラスは axctrls.TActiveXControl の下位クラスであり,この axctrls.TActiveXControl が ActiveX インターフェースをサポートします。ActiveX ラッパーは,このサポートを継承するので,VCL コントロールに Windows メッセージを転送でき,ホストアプリケーション内でそのウィンドウの親になることができます。

ActiveX ラッパーは,デフォルトインターフェースを介してクライアントに VCL コントロールのプロパティとメソッドをエクスポーズします。ラッパークラスのプロパティとメソッドを実装して,基底の VCL コントロールにメソッド呼び出しを委任する必要があります。クライアント上で VCL コントロールのイベントを生成するメソッドもラッパークラスに提供し,VCL コントロール上でこれらのメソッドをイベントハンドラとして割り当てる必要があります。

タイプライブラリ

ラッパークラスの型定義,そのデフォルトインターフェース,およびこれらが必要とする型定義を含む ActiveX コントロールのタイプライブラリを生成する必要があります。この型情報は,コントロールが自分のサービスをホストアプリケーションに知らせるための手段を提供します。この情報はタイプライブラリエディタを使って表示および編集できます。この情報は別個のバイナリタイプライブラリファイル(.TLB 拡張子)に格納されますが,リソースとして ActiveX コントロール DLL にもコンパイルできます。

プロパティページ

オプションで ActiveX コントロールにプロパティページを与えることができます。プロパティページを使用すると,ホスト(クライアント)アプリケーションのユーザーが,コントロールのプロパティを表示したり編集できるようになります。開発者は複数のプロパティを 1 ページにグループ化することも,1 ページを使ってダイアログボックスに似たインターフェースをプロパティ用に提供することもできます。プロパティページの作成方法の詳細は,「ActiveX コントロールのプロパティページの作成」を参照してください。