在 CHM 中跳到锚点
使用 Delphi 2010 - Delphi XE2 - Windows XP 进行测试
如何跳转到anchor在 Delphi 的 chm 文件(编译的 HTML 帮助)中。
是的,可以使用 HtmlHelp() 命令跳转到锚点。
<a name="my_anchor"></a>
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
链接在:概述.htm
- 注:此链接为不需要通过delphi程序跳转到
锚点。(仅用于测试)。
概述.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
[...]
<BODY bgColor=#f7f8e2>
<H1>Overview</H1>
<A HREF="Overview.htm#UsingtheMenus">Using the Menus</A>
[...]
锚点:概述.htm
[...]
<A NAME="UsingtheMenus" </A>
<P><STRONG>Using the Menus and Toolbars</STRONG>
[...]
如果有人想尝试一下。
以下是更多信息和测试程序:
运行Project1.exe并选择没有 :
Unit1.pas/命令
procedure TForm1.Button2Click(Sender: TObject);
begin
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
end;
- 单击按钮
Overview.htm#UsingtheMenus
结果:
帮助文件打开并且overview.htm
出现。它是跳到锚上。
下载源Project1.exe D2010和XE2。
下载源sample.chm HtmlHelp 项目。
Download
现在让我们测试其他 2 个按钮
procedure TForm1.HelpKeywordClick(Sender: TObject);
begin
Application.HelpKeyword('UsingtheMenus');
end;
procedure TForm1.HelpContextClick(Sender: TObject);
begin
Application.HelpContext(IDH_UsingtheMenus);
end;
- 单击按钮
HelpKeyword('UsingtheMenus')
结果:
帮助文件打开并且FirstTopic.htm
出现。文本UsingtheMenus
被插入到搜索字段中。没有跳到锚点!
- 单击按钮
HelpContext(IDH_UsingtheMenus)')
除了搜索框为空之外,结果相同。
最后 2 次点击演示如下:
有没有秘密 ID 或关键字在文件 HelpFile2\sample.chm 中可用。
现在我们更改帮助文件那除了Overview.htm#UsingtheMenus
其他两种方法都会成功。
- 关闭应用程序“Project.exe”
- 再次运行“Project.exe”。
- 确保
with
被选中。
现在我们使用文件夹 HelpFile\ 中的“sample.chm”
使用以下设置。
sample.h
#define IDH_Creating_Projects_and_Topics 1005
#define IDH_Overview 1003
#define IDH_UsingtheMenus 1009
样本.ali
IDH_Overview=Overview.htm
IDH_welcom=FirstTopic.htm
IDH_UsingtheMenus=Overview.htm#UsingtheMenus
样本.hcc
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
[...]
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using the Menus">
<param name="Local" value="Overview.htm#UsingtheMenus">
</OBJECT>
[...]
</HTML>
样本.hhk
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
[...]
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Using the Menus">
<param name="Name" value="Using the Menus">
<param name="Local" value="Overview.htm#UsingtheMenus">
</OBJECT>
[...]
</HTML>
如果我们编译“sample.chm”,我们会收到一条错误消息。
HHC3015: Warning: An alias has been created to "Overview.htm#UsingtheMenus" but the file does not exist.
这是正常的,因为文件“Overview.htm#UsingtheMenus”并不真正存在!
我们来试试吧
不要忘记,“帮助窗口”在尝试以下每项操作后,要再次关闭。否则你无法跟踪不同的状态。
- 单击按钮
HelpKeyword('UsingtheMenus')
结果:
帮助文件打开并且FirstTopic.htm
出现。文本UsingtheMenus
被插入到搜索字段中。文本UsingtheMenus
在列表框中选择
如果您点击Show
It was 跳到锚上。
- 单击按钮
HelpContext(IDH_UsingtheMenus)')
结果:
帮助文件打开并且overview.htm
出现。它是跳到锚上。
- 单击按钮
Overview.htm#UsingtheMenus
结果:
与上面的结果相同。
帮助文件打开并且overview.htm
出现。它是跳到锚上。
现在我们可以使用三种方法之一来跳转到所需的标记。
如果有人对其他按钮的功能感兴趣,请继续阅读并获取更多信息。
明天继续。