2

私は、数百のフォームと、2,000 を超えるトピックを含む対応するヘルプ ファイルを含むアプリケーションに取り組んでいます。コンテキスト ID を割り当てている特定のフォームが 1 つありますが、「F1」を押すと、ヘルプ ファイルがデフォルト ページで開きます (これは、渡された ID が見つからなかったことを意味します)。適切なトピックが表示されない理由をさらにデバッグするために、ヘルプ ファイルに渡されている ID を調べる必要があります。この番号を見つけるにはどうすればよいですか?

4

1 に答える 1

4

この質問を書いているときに解決策を発見したので、この質問にQ&Aスタイルで答えています...

Applicationコンポーネントには、ヘルプ ファイルが開かれるときにトリガーされるイベントがOnHelpあります。このイベントにハンドラー関数を割り当て、Dataパラメーターを読み取ってこのコンテキスト ID を取得します。

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnHelp:= AppHelp;
end;

function TForm1.AppHelp(Command: Word; Data: THelpEventData; var CallHelp: Boolean): Boolean;
begin
  ShowMessage(IntToStr(Data));
end;

さらに、CallHelpパラメーターをに変更Falseして、アプリケーションがヘルプ ファイルを開く直前に呼び出しをキャンセルするようにすることもできます。

于 2012-10-30T15:35:32.613 に答える