Tools API の概要
IDE の拡張:インデックス への移動
Tools API の宣言はすべて、単一のユニット ToolsAPI に記述されています。Tools API を使用するには、通常、DesignIDE パッケージを使用します。つまり、Tools API アドインは、設計時パッケージとして作成するか、実行時パッケージを使用する DLL として作成する必要があります。パッケージとライブラリの問題についての詳細は、「ウィザード パッケージのインストール」を参照してください。
Tools API 拡張を記述するための主なインターフェイスは IOTAWizard であるため、ほとんどの IDE アドインはウィザードと呼ばれます。C++Builder ウィザードと Delphi ウィザードの大半は相互運用可能です。Delphi で記述しコンパイルしたウィザードを C++Builder で使用でき、その逆もまた同様です。相互運用性はバージョン番号が同じ場合に最もよく働きますが、両製品の将来のバージョンで使用できるようにウィザードを作成することも可能です。
Tools API を使用するには、ToolsAPI ユニットに定義されているインターフェイスを 1 つ以上実装するウィザード クラスを作成します。
ウィザードでは、Tools API で提供されるサービスを利用します。各サービスは、関連する一連の関数を提供するインターフェイスです。インターフェイスの実装は IDE の内部に隠蔽されています。Tools API が公開するのはインターフェイスのみであり、開発者はそれを使用して、インターフェイスの実装を気にせずにウィザードを作成できます。さまざまなサービスを利用して、ソース エディタ、フォーム デザイナ、デバッガなどにアクセスできます。ウィザードに対するサービスを公開するインターフェイスの使用については、「Tools API サービスの取得」を参照してください。
サービスとその他のインターフェイスは、2 つの基本カテゴリに分類されます。それらは、型名に使用されるプレフィックス(接頭辞)で以下のように区別できます。
- NTA(ネイティブ Tools API)が付くものは、実際の IDE オブジェクト(IDE の TMainMenu オブジェクトなど)に直接アクセスできるようにします。このカテゴリに属するインターフェイスを使用する場合、ウィザードでは RAD Studio のパッケージを使用する必要があります。つまり、ウィザードは IDE の特定のバージョンに関連付けられます。ウィザードは、設計時パッケージ内か、実行時パッケージを使用する DLL 内に格納されます。
- OTA(オープン Tools API)が付くものはパッケージを必要とせず、インターフェイスだけで IDE にアクセスします。理論上は、Delphi の呼び出し規約と AnsiString などの Delphi 型を扱うこともできれば、COM 形式のインターフェイスをサポートする任意の言語でウィザードを作成できます。OTA インターフェイスは IDE に完全にアクセスできるようにするわけではありませんが、Tools API のほとんどすべての機能は OTA インターフェイスを通じて使用可能です。ウィザードで OTA インターフェイスのみ使用する場合は、IDE の特定のバージョンに依存しない DLL を作成することができます。
Tools API のインターフェイスには、プログラマが実装しなければならないものと IDE で実装されるものの 2 種類があります。大半のインターフェイスは後者のカテゴリに入ります。つまり、インターフェイスは IDE の機能を定義しますが、実際の実装は隠蔽されています。プログラマによる実装が必要な種類のインターフェイスは、さらに、ウィザード、ノーティファイア、クリエータの 3 つのカテゴリに分類されます。
- このトピックで既に述べたように、ウィザード クラスは IOTAWizard インターフェイスを実装します。場合によっては、派生インターフェイスを実装することもあります。
- ノーティファイアは Tools API に含まれている別の種類のインターフェイスです。IDE では、何か関心のある事象が発生したときに、ノーティファイアを使用してウィザードにコールバックします。ノーティファイア インターフェイスを実装するクラスを作成し、ノーティファイアを Tools API に登録すると、ユーザーがファイルを開くとき、ソース コードを編集するとき、フォームを変更するとき、デバッグ セッションを開始するときなどに、IDE はノーティファイア オブジェクトにコールバックします。ノーティファイアについては、「ウィザードに IDE イベントを通知する」で説明しています。
- クリエータは、プログラマによる実装が必要な別の種類のインターフェイスです。Tools API では、クリエータを使用して、新しいユニットやプロジェクトなどのファイルを作成したり、既存のファイルを開いたりします。クリエータ インターフェイスについての詳細は、「フォームとプロジェクトの作成」を参照してください。
その他の重要なインターフェイスとしては、モジュールとエディタがあります。モジュール インターフェイスは開いているユニットを表し、1 つ以上のファイルで構成されます。エディタ インターフェイスは、開いているファイルを表します。ソース ファイルにはソース エディタ、フォーム ファイルにはフォーム デザイナ、リソース ファイルにはプロジェクト リソースといったように、さまざまな種類のエディタ インターフェイスによって IDE のさまざまな要素にアクセスできます。モジュール インターフェイスとエディタ インターフェイスについての詳細は、「ファイルとエディタの処理」を参照してください。