如何在Delphi XE2上添加HTML帮助文件(.chm)的支持? [英] How to add support of HTML help files (.chm) on Delphi XE2?

查看:135
本文介绍了如何在Delphi XE2上添加HTML帮助文件(.chm)的支持?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Delphi XE2上添加HTML帮助文件(.chm)的支持?我们需要在每个控件的 HelpContext 属性上使用A链接(A关键字)来查找帮助页面。 Delphi XE2具有原生支持HTML帮助文件的单位 HTMLHelpViewer 。但是如何使用它?

How to add support of HTML help files (.chm) on Delphi XE2? We need to use A-links (A-keywords) on HelpContext property of every control to lookup help pages. Delphi XE2 has native support of HTML help files by unit HTMLHelpViewer. But how to use it?

推荐答案

我怀疑要使用A链接,您需要执行以下操作:

I suspect that to use A-links you need to do the following:


  1. 如下所述分配一个 Application.OnHelp 处理程序。

  2. <在程序启动期间,分配 Application.HelpFile
  3. 调用 Application.HelpKeyword 如果您希望使用A链接调用帮助系统。

  4. 为您希望的任何GUI控件设置 HelpKeyword 属性回应上下文敏感的 F1 按键。

  1. Assign an Application.OnHelp handler as described below.
  2. Assign Application.HelpFile during program startup.
  3. Call Application.HelpKeyword if you wish to invoke the help system with an A-link.
  4. Set the HelpKeyword property for any GUI controls that you wish to respond to context sensitive F1 key presses.

OnHelp 处理程序看起来像这样:

The OnHelp handler looks like this:

function TMainForm.ApplicationHelp(Command: Word; 
  Data: THelpEventData; var CallHelp: Boolean): Boolean;
var
  Link: THH_AKLink;
  ALink: string;
begin
  CallHelp := False;
  Result := True;
  //argh, WinHelp commands
  case Command of
  HELP_COMMAND:
    begin
      ZeroMemory(@Link, SizeOf(Link));
      Link.cbStruct := SizeOf(Link);
      ALink := PChar(Data); // we are going to re-purpose the keyword as an A-link
      Link.pszKeywords := PChar(AnsiString(ALink)); // seems we have to pass a PAnsiChar ..
      Link.fIndexOnFail := True;
      HtmlHelp(GetDesktopWindow, Application.HelpFile, HH_ALINK_LOOKUP, 
        DWORD_PTR(@Link));
    end;
  end;
end;

HtmlHelpViewer 单元包含名为 LookupALink 做同样的事情。但是我看不到他们怎么可能被调用。

The HtmlHelpViewer unit contains methods named LookupALink which do the same. But I don't see how they could ever be called.

上面的方法有点黑客,因为它将关键字解释为A-Links。如果你想要上下文相关的帮助,我看不到你能做什么。

The above approach is a little bit hacky because it interprets keywords as A-Links. If you want context sensitive help, I can't see what else you can do.

这篇关于如何在Delphi XE2上添加HTML帮助文件(.chm)的支持?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆