アプリケーションでヘルプを使用可能にする

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

アプリケーション、コンポーネント、ライブラリの構築:インデックス への移動

メモ: このセクションで説明されているヘルプ機能のほぼすべてが、Delphi アプリケーションと C++ アプリケーションの両方で、ほとんど同じ方法で使用することができます。

VCL アプリケーションでは、複数ある外部ヘルプ ビューアのいずれかにヘルプ要求を渡すためのオブジェクトベースのメカニズムを使ってヘルプを表示することができます。 そのためには、System.HelpIntfs.ICustomHelpViewer インターフェイス(および必要であればそこから派生したヘルプ システムのインターフェイスの 1 つ)を実装し、自身をグローバルなヘルプ マネージャに登録するクラスを、アプリケーションでインクルードする必要があります。

VCL ライブラリには、Vcl.HtmlHelpViewer ユニットがあります。このユニットの implementation セクションでは内部クラス THtmlHelpViewer を定義していて、そのクラスでこのすべてのインターフェイスが実装され、アプリケーションと Windows の HTMLHelp ヘルプ ビューアとのリンク付けがされます (HTMLHelp 関数については MSDN ライブラリを参照してください)。 Vcl.HtmlHelpViewer ユニットの initialization セクションでは、次のように THtmlHelpViewer クラスのインスタンスを作成しています。

 HelpViewer := THTMLHelpViewer.Create;
 HelpIntfs.RegisterViewer(HelpViewerIntf, HelpViewer.FHelpManager);

この THtmlHelpViewer.Create というコンストラクタの内部では、THtmlHelpViewer クラスの HelpViewerIntf というヘルプ ビューア オブジェクトが作成されます。 2 行目では、このヘルプ ビューア オブジェクトをグローバル関数 System.HelpIntfs.RegisterViewer に渡しています。この関数は、1 行目で作成したヘルプ ビューアを登録し、HelpViewer.FHelpManager ヘルプ マネージャを返します。 グローバル関数 System.HelpIntfs.GetHelpSystem を他のユニットから呼び出して、登録されたヘルプ ビューアの Help メソッドにアクセスすることができます。 このようにすると、System.HelpIntfs.ICustomHelpViewer インターフェイス(や HelpIntfs の他のインターフェイス)で宣言され THtmlHelpViewer クラスで実装された、すべてのメソッドの実装にアクセスすることができます。

Delphi および C++ の要件

  • Delphi アプリケーションで HTMLHelp ヘルプ ビューアを使用したい場合には、Vcl.HtmlHelpViewer ユニットを、アプリケーションの uses 句に入れる必要があります。
  • C++ アプリケーションでは、#include Vcl.HtmlHelpViewer.hpp 指令を追加します。

ヘルプ マネージャでは、登録されたビューアのリストを保持し、2 段階の処理でビューアに要求を渡します。 つまり、まず、特定のヘルプ キーワードやコンテキスト ID をサポートできるかを登録されたヘルプ ビューアそれぞれに尋ね、その後、サポートできると回答したヘルプ ビューアにヘルプ要求を渡します。

トピック