2012-02-09 53 views
1

我們正在將應用程序從Delphi 6移植到Delphi XE2中。問題是,無論我嘗試什麼,幫助文件都不會顯示。無法在Delphi XE2應用程序中顯示.chm幫助文件 - 爲什麼?

在Win 7 64

用Delphi XE2(更新3)使用與我的德爾福6內置的應用程序工作的有效幫助文件(的.chm)。

我創建一個按鈕調用正是如此幫助下,簡單的應用程序:

Application.HelpFile := 'Help.chm'; 
    if Application.HelpFile <> '' then begin 
    Application.HelpContext(0); 
    end; 

我有HTMLHelpViewer在我的使用條款。

幫助文件與應用程序位於同一目錄中。當我點擊按鈕幫助文件不顯示!我什麼也沒看見。沒有錯誤。

我嘗試了幾個不同的幫助文件,所有這些文件都是有效的,我可以通過資源管理器打開。

我也試過直接調用表的內容是這樣的:

HtmlHelp(0, Application.HelpFile, HH_DISPLAY_TOC, 0); 

沒什麼要麼顯示這種方式。

我在這裏錯過了什麼?如果我在用戶按F1鍵時無法顯示幫助文件,這是一個顯示停止。

------編輯 - 問題解決! ------

嘆息,我是個白癡,但只是部分。 :)

簡單的應用程序確實有幫助文件在錯誤的目錄中。新的Delphi XE2在子目錄中具有默認輸出,而不是像Delphi 6那樣的原始目錄。我現在被這兩次咬了。 :)

所以,一旦我想出這個問題,我不得不回到原來的應用程序,並找出一個。

事實證明,我們在項目中有自己的HTMLHelpViewer.pas單元(BIG項目),並且與Delphi XE2附帶的內置HTMLHelpViewer單元發生衝突。

一旦我打開我們的文件的版本,並從硬盤驅動器中刪除它,並在德爾福的版本中添加一切運作順暢。

感謝您的敲門聲,幫助我弄清楚這一點。

+0

本地驅動器上或網絡驅動器上的chm?有一個安全功能可以防止從非本地驅動器打開chm文件... – ain 2012-02-09 15:56:08

+0

@ain發生這種情況時,會出現一個窗口,但缺少幫助內容 – 2012-02-09 16:13:40

+2

您已經找到它了,但除此之外,在Application.HelpFile中指定完全限定的路徑可能並不會造成任何影響。 – 2012-02-09 16:38:55

回答

4

根據您提供的信息,我可以看到的唯一解釋是幫助文件不在當前工作目錄中。

我會保持工作目錄超出等式,並將Application.HelpFile設置爲幫助文件的完全限定路徑。

+0

呃,是的,那是我在簡單測試應用程序中遇到的問題。 DOH! – 2012-02-09 16:31:39

0

是由安裝程序安裝的幫助文件?

如果沒有,請右鍵單擊它並選擇屬性中的「取消阻止」

相關問題