确定将哪个帮助上下文ID发送到帮助文件?

时间:2012-10-30 15:35:33

标签: delphi delphi-xe2 helpfile helpcontext

我正在开发一个包含数百个表单的应用程序和一个包含2,000多个主题的相应帮助文件。我有一个特定的表单,我正在分配一个上下文ID,但是当我按“F1”时,帮助文件在其默认页面上打开(这意味着找不到传递给它的ID)。我需要找出传递给帮助文件的ID,以进一步调试为什么它没有提出正确的主题。我如何找到这个号码?

1 个答案:

答案 0 :(得分:4)

我在写这个问题时发现了解决方案,所以我回答了这个问题Q& A style ......

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,以使应用程序在打开之前取消对帮助文件的调用。