2015-10-13 40 views
2

我想將我的新HTML幫助文件添加到德爾福10西雅圖。這需要登記自己的菜單項,根據文檔:德爾福在註冊時間包文件位置

Third-Party Help Menu Item (Delphi)

我唯一缺少的是如何確定的組件包的安裝目錄中運行(或設計/實際註冊時間),所以我可以在實踐中定義Path\to\your\local\help\file。我的幫助文件將相對於.bpl文件安裝,所以我只需要找到該路徑。

我能弄清楚的是,我應該使用ToolsAPI IOTAPackageServices接口也許吧?

+0

我相信它只是相對於包,沒有絕對的路徑。 **編輯**實際上,可能並非如此,在更多地查看該鏈接之後。 Delphi文檔一直有一個習慣,即爲實際生活場景省略重要的信息。 –

+0

是的,Delphi 10附帶的文檔頁面版本包含甚至沒有編譯的代碼...在線頁面上的代碼似乎是固定的,但仍然不是很整齊。 –

+0

另外,我不知道上下文敏感組件是否可以起作用 - 至少它不適用於Delphi 10附帶的Indy組件 - 而且我也無法使它適用於我的 –

回答

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;