Tools API を使用した IDE の拡張

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

コンポーネント開発者ガイド:インデックス への移動


Tools API を使用して、RAD Studio IDE にメニュー項目や、ツールバー ボタン、動的にフォームを作成するウィザードなどを独自に追加し、カスタマイズすることができます。

Tools API は、IDE を対話形式で使用したり制御するための 100 を超えるインターフェイスを集めたもので、メイン メニュー、ツールバー、メイン アクション リストと画像リスト、ソース エディタの内部バッファ、キーボード マクロとバインディング、フォームとフォーム エディタのコンポーネント、デバッガとデバッグ対象プロセス、コード補完、メッセージ ビュー、To-Do リストなどが対象になっています。

Tools API を使用して IDE に新しい機能を追加するには:

  1. パッケージを作成し、IDE を拡張するよう構成します。既存パッケージを使用することもできます。
  2. IDE 拡張機能のロジックを実装します。
  3. 拡張機能を IDE にインストールします。

IDE を拡張するパッケージの作成または拡張

Tools API を使って IDE を拡張するには、まず Tools API を使用できるようパッケージを作成または拡張する必要があります。

パッケージを作成したら、データ モジュールを使用してコードを実装することができます。パッケージにデータ モジュールを追加し、フレームワーク親和性を VCL に変更し、OnCreate イベントおよび OnDestroy イベントを使用して IDE 拡張機能を作成および破棄するコードを定義します。

または、パッケージのユニットやパッケージのメイン ソース コード ファイルで拡張機能を定義することもできます。

IDE 拡張機能のロジックの実装

パッケージ内のコードでは、Tools API が提供するサービスを使用することができます。各サービスは、関連する一連の関数を提供するインターフェイスです。さまざまなサービスを使用して、コード エディタフォーム デザイナ、デバッガなどにアクセスできます。

さらに、特別なインターフェイスを使用して、ウィザード、通知、作成、モジュール、エディタなどの機能を実装することができます。

Tools API インターフェイスはすべて、C:\Program Files (x86)\Embarcadero\Studio\20.0\source\ToolsAPI 内のユニットで宣言されています。これらのユニットの内容を調べて、どのように IDE を拡張できるかを探してください。ライブラリ リファレンス ドキュメントには、通常、Tools API のリファレンス ドキュメントは含まれません。ただし、Tools API の PlatformAPI ユニットについてはリファレンス ドキュメントが提供されています。

ネイティブ 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 を作成することができます。

IDE 拡張時の規則

Tools API を使用すると、IDE をさまざまな方法で柔軟に拡張することができます。IDE の拡張時には、拡張機能が IDE にうまく統合できることと、IDE の中核機能を邪魔しないことを確認してください。

IDE の拡張時に従わなければならない規則がいくつかあります。

  • 外部ツールを開くメニュー項目を追加する場合は、[ツール]メニューに追加します。
  • ヘルプ リソースを開くメニュー項目を追加する場合:
    • 1 つのヘルプ メニュー エントリを追加する場合は、[ヘルプ|サードパーティ ヘルプ]内にメニュー エントリを配置して、製品の名前を表示します。
    • 複数のヘルプ メニュー項目(たとえばオフライン ヘルプ用に 1 つとオンライン ヘルプ用に 1 つなど)を追加する場合は、[ヘルプ|サードパーティ ヘルプ]内にメニュー エントリを配置して製品の名前を表示し、そのヘルプ メニュー エントリの子メニュー項目として、複数のヘルプ メニュー項目を追加します。
詳細は、以下を参照してください。

IDE 拡張機能ではラージ メモリ アドレスをサポートする必要がある

IDE は、ラージ アドレスに対応しているため、最大 4 GiB のメモリを使用できます。そのため、IDE 拡張機能でもラージ メモリ アドレスを処理できる必要があります。

ほとんどの IDE 拡張機能でラージ メモリ アドレスをサポートする必要があります。IDE 拡張機能での問題を検出するのに役立つヒントを以下に挙げます。

  • ポインタInteger にキャストしないでください。そうではなく、NativeInt にキャストします。
  • ハンドルを Integer として宣言しないでください。そうではなく、THandle を使用します。
  • Windows の SendMessage 関数を使用する場合には、パラメータを Integer にキャストしないでください。そうではなく、ARAM Windows データ型の LPARAM および WPARAM を使用します。

IDE への拡張パッケージのインストール

パッケージの準備ができた後、パッケージを使用するには、コンパイルして IDE に読み込む必要があります。

関連トピック

関連項目