Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Delphi XE2应用程序上通过a链接(a关键字)调用上下文帮助?_Delphi_Delphi Xe2_Help System - Fatal编程技术网

如何在Delphi XE2应用程序上通过a链接(a关键字)调用上下文帮助?

如何在Delphi XE2应用程序上通过a链接(a关键字)调用上下文帮助?,delphi,delphi-xe2,help-system,Delphi,Delphi Xe2,Help System,如何在Delphi XE2应用程序上通过a-link(a-keyword)调用上下文帮助?您只需要以下函数: procedure ShowHelpALink(const HelpFile, ALink: string); var Link: THH_AKLink; begin ZeroMemory(@Link, SizeOf(Link)); Link.cbStruct := SizeOf(Link); Link.pszKeywords := PChar(AnsiString(AL

如何在Delphi XE2应用程序上通过a-link(a-keyword)调用上下文帮助?

您只需要以下函数:

procedure ShowHelpALink(const HelpFile, ALink: string);
var
  Link: THH_AKLink;
begin
  ZeroMemory(@Link, SizeOf(Link));
  Link.cbStruct := SizeOf(Link);
  Link.pszKeywords := PChar(AnsiString(ALink));
  Link.fIndexOnFail := True;
  HtmlHelp(GetDesktopWindow, HelpFile, HH_ALINK_LOOKUP, DWORD_PTR(@Link));
end;

出于某种原因,
HtmlHelp
THH_AKLink
记录中的字符串解释为ANSI字符串。我找不到这方面的任何文件。我怀疑这只是HtmlHelp文件库中的一个bug。我认为您在
THH_AKLink
中传递的字符串必须是ANSI字符串。

这与不在Delphi中工作的帮助无关,因为您没有使用Delphi对帮助的支持。您直接使用的是
IHTMlHelpster
界面。您也没有提供有关您正在使用的操作系统的信息,并且您的图形不是英文的(但是您没有提供图像右侧窗格中显示的不起作用的内容或任何错误信息的翻译)。很难解释可能出了什么问题。:-)你不是要调用
应用程序.HelpKeyword(TheKeyword)
吗?这个问题被简化了。它调用了标准查找,而不是我的A-links:((为什么会发生这种情况?现在还有另一个问题。当我关闭“帮助”窗口时,应用程序的窗体也会关闭。有些奇怪。还有第三个问题。此代码仅在F1上显示帮助。如果我只是执行它,则什么也不会发生。此代码与F1无关。您是在普通应用程序中运行此代码?还是尝试将其拼接到现有应用程序中?St使用一个普通应用程序进行艺术创作。它只包含此代码和一个调用。我发现帮助窗口关闭应用程序窗口没有问题。再次尝试使用普通应用程序。您了解答案中的代码是什么吗?您是否阅读了MSDN上的
HH\u ALINK\u LOOKUP
文档?请不要将SO答案视为黑盒。