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

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

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


ActiveX コントロールには多くの要素が含まれており、それぞれが特定の機能を実行します。これらの要素には、VCL コントロール、それに対応する、プロパティやメソッド、イベントを公開するための COM オブジェクト ラッパー、そして、 1 つ以上の関連づけられたタイプ ライブラリが含まれています。

VCL コントロール

Delphi において ActiveX コントロールの基礎実装は、VCL コントロールです。ActiveX コントロールを作成する際、まず AcriveX コントロールを作成する基となる VCL コントロールを設計または選択する必要があります。

基礎 VCL コントロールは、TWinControl の子孫でなければなりません。これは、ホスト アプリケーションを親にできるウィンドウを持つ必要があるからです。アクティブ フォームを作成する際、そのオブジェクトは Vcl.AxCtrls.TActiveForm の子孫とします。

メモ: ActiveX コントロール ウィザードでは、利用可能な TWinControl の子孫が表示されるため、そこから選択して ActiveX コントロールを作成することができます。ただし、すべての TWinControl の子孫がここに含まれているわけではありません。THeaderControl など、コントロールによっては、ActiveX とは互換性がないものとして登録されるため(RegisterNonActiveXprocedure プロシージャを使用して)この一覧には表示されません。

ActiveX ラッパー

実際の COM オブジェクトは、VCL コントロールの ActiveX ラッパー オブジェクトです。アクティブ フォームの場合、このクラスは常に Vcl.AxCtrls.TActiveFormControl となります。その他の ActiveX コントロールの場合、TVCLClassX というフォーム名となり、ここでの TVCLClass は、VCL コントロール クラスの名前となります。このため、たとえば、TButton の ActiveX ラッパーは TButtonX と命名されます。

ラッパ クラスは Vcl.AxCtrls.TActiveXControl の子孫であり、ActiveX インターフェイスに対するサポートを提供します。ActiveX ラッパーはこのサポートを継承しており、Windows メッセージを VCL コントロールに転送したり、ホスト アプリケーションにおいてそのウィンドウの親となることができます。

ActiveX ラッパーは、VCL コントロールのプロパティやメソッドを、デフォルト インターフェイスを介してクライアントに公開します。ラッパ クラスのプロパティとメソッドは実装しなければなりません。その際、メソッド呼び出しは基の VCL コントロールに転送します。また、ラッパ クラスに、クライアント上で VCL コントロールのイベントを発生させるメソッドを用意し、VCL コントロール上のイベント ハンドラとしてこれらのメソッドを割り当てます。

タイプ ライブラリ

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

プロパティ ページ

また任意で、ActiveX コントロールにプロパティ ページを用意することができます。プロパティ ページでは、ホスト(クライアント)アプリケーションのユーザーが、コントロールのプロパティの表示および編集を行うことができます。複数のプロパティを 1 つのページにグループとしてまとめたり、このページを使用して、プロパティのためのダイアログに似たインターフェイスを提供することができます。プロパティ ページの作成方法の詳細については、「ActiveX コントロールのプロパティ ページの作成」をを参照してください。