在Delphi程序中,如何跳转到XE2帮助文件主题中的锚点?锚点具有以下格式(从显示CHM文件的超文本标记语言HelpViewer中的主题页面的源代码中提取):
<a name="my_anchor_id"></a>
我尝试了以下几种方法:
Application.HelpJump('MyTopicName.htm#my_anchor_id');
不幸的是,这不起作用:它确实跳到了这个主题,但只跳到了主题的顶部,而不是锚点,这是向下滚动页面的几次。
发布于 2013-03-15 11:01:31
跳转到CHM中的锚点
使用Delphi2010 - DelphiXE2 - Windows XP进行测试
如何用Delphi跳转到chm文件中的锚(编译的HTML帮助)。
是,可以使用HtmlHelp()命令跳转到锚点。
<a name="my_anchor"></a>
HtmlHelp(0,hpPath+'::/Overview.htm#UsingtheMenus>main',HH_DISPLAY_TOPIC,DWORD(nil));
中的链接: Overview.htm
锚。(仅用于测试)。
Overview.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>
[...]
在: Overview.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项目。
现在让我们测试一下另外两个按钮
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)')
,
除了搜索框为空外,其他结果相同。
在这里演示最后两次点击::
在文件HelpFile2\sample.chm中没有可用的密钥ID或关键字。
现在,我们将帮助文件更改为,这样除了Overview.htm#UsingtheMenus
之外,其他两种方法都会成功。
with
。现在,我们在文件夹HelpFile\中使用"sample.chm“
具有以下设置。
sample.h
#define IDH_Creating_Projects_and_Topics 1005
#define IDH_Overview 1003
#define IDH_UsingtheMenus 1009
sample.ali
IDH_Overview=Overview.htm
IDH_welcom=FirstTopic.htm
IDH_UsingtheMenus=Overview.htm#UsingtheMenus
sample.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>
sample.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
是跳到了锚上。
单击按钮HelpContext(IDH_UsingtheMenus)')
,
结果是:
打开帮助文件并显示overview.htm
。是跳到了锚上。
单击按钮Overview.htm#UsingtheMenus
,单击
结果是:
与上面的结果相同。
打开帮助文件并显示overview.htm
。是跳到了锚上。
现在,我们可以使用三种方法之一跳转到所需的标记。
如果任何人对其他按钮的功能感兴趣,请继续阅读并获取更多信息。
明天会继续进行。
https://stackoverflow.com/questions/12281543
复制相似问题