您将两次添加到已编译的 chm 文件中,第三方应用程序2 等于 ALink。
那么当chm文件没有按预期工作时,你把责任归咎于Delphi XE2吗?
1.) 您不能将 AKeyword 与
HtmlHelpW(Handle, Application.HelpFile, HH_ALINK_LOOKUP, DWORD_PTR(@aLink))
您可以使用 KLink 关键字进行尝试:
HtmlHelpW(Handle, Application.HelpFile+'>main', HH_DISPLAY_TOPIC, DWORD_PTR(nil));
HtmlHelpW(Handle, Application.HelpFile, HH_KEYWORD_LOOKUP, DWORD_PTR(@link));
ALink
是他出现在这里的一次跳跃,也是KLink
相关话题中的一次展示或跳跃。
但是,找到的主题列表不是基于索引中的关键字,而是基于ALink names
.htm 文件中涉及的关键字。
这只能与 ALink 一起使用。下面是一个ALink。
xy.htm 的一部分
<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="ALink Name" value="UsingtheMenus">
</OBJECT>
2.)在您的代码中,我看不到以下内容:
HtmlHelpW(Handle, Application.HelpFile, HH_DISPLAY_TOPIC, DWORD_PTR(nil));
- 在调用之前必须先调用 HH_DISPLAY_TOPIC 命令
HH_ALINK_LOOKUP
,以确保创建帮助窗口。
HH_ALINK_LOOKUP 命令
- 帮助作者使用 HTML 帮助编译器信息功能将 ALink 名称插入目标主题文件。
- ALink : name="ALink 名称" value="lookupAlink"
- KLink:名称=“关键字”值=“查找关键字”
查找区分大小写。多个查找由分号分隔。
除了自动生成的关键字,在编译 .htm 源文件时。
您可以使用显式的 KLink。
这是一个显式的“KLink”,该位置可能位于 .htm 文件中的任何位置,用于关键字
<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="lookupKeyword">
</OBJECT>
如果您创建了错误消息,则会显示错误并且应用程序正常继续,这是有益的。来自答案的来源如何添加对 HTML 帮助文件 (.chm) 的支持....
procedure TForm1.HHALINKLOOKUPClick(Sender: TObject);
var
link : HH_AKLINK;
szUrl,szKey,szMsgText,szMsgTitle,szWindow : AnsiString;
begin
szKey := Edit1.Text; // 'UsingtheMenus';
szUrl :='Overview.htm';
szMsgText :='Error: Can''t find "'+Edit1.Text+'"!';
szMsgTitle :='Error: HH_ALINK_LOOKUP';
szWindow :='main';
with link do begin
cbStruct := sizeof(HH_AKLINK) ;
fReserved := False;
pszKeywords := PChar(szKey);
pszUrl := nil;
pszMsgText := PChar(szMsgText);
pszMsgTitle := PChar(szMsgTitle);
pszWindow := PChar(szWindow);
fIndexOnFail:= False;
end;
HtmlHelpW(Handle, Application.HelpFile+'>main', HH_DISPLAY_TOPIC, DWORD_PTR(nil));
HtmlHelpW(Handle, Application.HelpFile, HH_ALINK_LOOKUP, DWORD_PTR(@link));
end;
当你在没有最后一个字母“s”的情况下 ALink “UsingtheMenus” 调用时,你会得到什么。
测试您的:使用 3rd 方应用程序更改的 chm 文件
您可以使用 HTML Help Workshop 测试任何 .chm 文件