Tools API サービスの取得
有益なことを行うには、IDE を拡張するパッケージからエディタ、ウィンドウ、メニューなどにアクセスする必要があります。これがサービス インターフェイスの役割です。
共通の Tools API サービス インターフェイスのリスト
Tools API には、ファイルに対するアクションを実行するアクション サービス、ソース コード エディタにアクセスするエディタ サービス、デバッガにアクセスするデバッガ サービスなど、多くのサービスが含まれています。最も重要なサービス インターフェイスの一部を次の表に示します。
| インターフェイス | 説明 |
|---|---|
|
|
次のネイティブ IDE オブジェクトへのアクセスを提供します: メイン メニュー、アクション リスト、イメージ リスト、ツールバー。 「IDE 固有のオブジェクトを使用する」を参照してください。 |
|
ユーザーがエディタ イベントの登録をできるようにします。 | |
|
ウェルカム ページの背景を実装するインターフェイス | |
|
ウェルカム ページ サービスの各種サービスを提供します。 | |
|
|
次の基本的なファイル アクションを実行します: 開く、閉じる、保存、再読み込み。 |
|
|
コード補完にアクセスできるようにし、カスタム コード補完マネージャをウィザードでインストールできるようにします。 |
|
|
デバッガへのアクセスを提供します。 |
|
|
ソース コード エディタとその内部バッファにアクセスできるようにします。 |
|
|
IDE の StyleServices へのアクセスを提供します。これにより、テーマが有効になっているかどうかを確認したり、IDE の組み込みフォームと同じスタイルで描画されるフォームを登録したりできます。 |
|
|
カスタム キーボード バインディングをウィザードで登録できるようにします。 |
|
|
キーボード マクロおよびキーボード バインディングにアクセスできるようにします。 |
|
|
キー入力のデバッグのオン/オフを切り替えます。 |
|
|
[メッセージ]ビューにアクセスできるようにします。 |
|
|
開いているファイルにアクセスできるようにします。 |
|
|
インストールされているすべてのパッケージとそれらのコンポーネントの名前を問い合わせます。 |
|
|
その他のさまざまなサービスです。 |
|
|
スプラッシュ画面のインターフェイス |
|
|
To-Do リストにアクセスできるようにし、カスタム To-Do マネージャをウィザードでインストールできるようにします。 |
|
|
ツール フィルタ通知オブジェクトを登録します。 |
|
インストールされているプラットフォーム、SKU、そして、実行中の IDE が評価版であるか記載されたリストを問い合わせます。 | |
|
|
ウィザードの登録および登録解除を行います。 |
ツール API での 高 DPI イメージ
イメージ(スプラッシュ画面サービス、情報ボックス、IDE インサイト、その他領域など)を渡す、すべての API が、高 DPI イメージをサポートしています。
各インターフェイスには、defined as an array of TGraphic の配列として定義されている TGraphicArray を取る、関連メソッドの新しいオーバーロードがあります。これにより、複数の解像度を持つ同じアイコンを渡すことができ、内部イメージ コレクションに追加され、仮想イメージ リストと共に使用されます。
このメソッドは、任意の TGraphic の配列を取りますが、PNG イメージを推奨します。
サービス インターフェイスの使用
サービス インターフェイスを使用するには、グローバル関数 Supports を使って、BorlandIDEServices 変数を、希望するサービスにキャストします。次に例を示します。
Delphi の場合:
procedure SetKeystrokeDebugging(Debugging: Boolean);
var
Dialog: IOTAKeyboardDiagnostics
begin
if Supports(BorlandIDEServices, IOTAKeyboardDiagnostics, Dialog) then
Dialog.KeyTracing := Debugging;
end;
C++ の場合:
void SetKeystrokeDebugging(bool Debugging)
{
_di_IOTAKeyboardDiagnostics Dialog;
if (BorlandIDEServices->Supports(Dialog))
Dialog->KeyTracing = Debugging;
}
ウィザードで特定のサービスをよく使用する必要がある場合は、そのサービスを指すポインタをウィザード クラスのデータ メンバとして保持することができます。
関連トピック
以下のトピックでは、Tools API サービス インターフェイスを扱う際に特に考慮すべき事項について説明します。