Delphi包文件在注册时的位置

时间:2015-10-13 11:37:26

标签: delphi delphi-10-seattle

我正在尝试将新的HTML帮助文件添加到Delphi 10 Seattle。这需要根据文档注册您自己的菜单项:

Third-Party Help Menu Item (Delphi)

我唯一缺少的是如何在运行时(或实际设计/注册时间)确定组件包的安装目录,以便我可以在实践中定义Path\to\your\local\help\file。我的帮助文件将相对于.bpl文件安装,所以我只需要找到那条路径。

我能弄清楚的是我应该使用ToolsAPI IOTAPackageServices界面吗?

2 个答案:

答案 0 :(得分:3)

您可以致电SysUtils.GetModuleName(HInstance)来获取您的包的可执行文件名。

答案 1 :(得分:1)

我设法使用了这个版本,这个版本也有效,但是太复杂了:

var
  PackageServices: IOTAPackageServices;
  I: Integer;
  Package: IOTAPackageInfo;
...
  if Supports(BorlandIDEServices, IOTAPackageServices, PackageServices) then
  begin
    I := 0;
    while True do
    try
      Package := PackageServices.Package[I];
      if Package = nil then
        break;
      if StartsStr('MyProduct', Package.Name) then
      begin
        // The help file is on the "side" directory of the package
        HelpFilePath := ExtractFilePath(Package.FileName) + '..\Help\MyProduct.chm';
      end;
      Inc(I);
    except
        break;
    end;
  end;