ar
   strFileName:string;
begin
   strFileName := ExtractFilePath(Application.ExeName) + 'delphitips.chm';
   Application.HelpFile := strFileName;
   Application.HelpKeyword('《代码大全》');
end;
可帮助文件调用不出来。

解决方案 »

  1.   

    你的方法应该是调用.hlp文件的,调用chm文件看看这个例子
    http://www.ddvip.net/program/delphi/index6/235.htm
      

  2.   

    谢谢:
    可我HtmlHelp( handle, AppPath+'\示例文件.chm::/示例文件.Content\系统要求.177.htm',
                HH_DISPLAY_INDEX, DWORD_PTR(PChar('初始安装')));
    按索引定位,老是显示不了网页。
    Chm我是用HTML help Workshop做的,文件是通过WordToChm把Word文件转换成为示例文件.hhp .hhk .hhc文件的,生成的CHM文件是带索引的啊,可怎么定位不了呢?
      

  3.   

    路径问题,确保"初始安装"这个索引跟‘/示例文件.Content\系统要求.177.htm'这个路径的文件相对应。用工具反编译那个例子的CHM文件,再看看代码,应该就明白了。
      

  4.   

    ShellExecute(handle, 'open', PChar('aaa.chm'), nil, nil, SW_SHOWNORMAL);
      

  5.   

    HtmlHelp( handle, AppPath+'\示例文件.chm::/示例文件.Content\系统要求.177.htm',
                HH_DISPLAY_INDEX, DWORD_PTR(PChar('初始安装')));
    建立索引的时候索引'初始安装'对应了相关的网页-初始安装.htm,我运行的时候显示的是-系统要求.177.htm网页,
    如果在这里调用的时候也要对应,那后面的DWORD_PTR(PChar('初始安装')));就根本没用拉,就AppPath+'\示例文件.chm::/示例文件.Content\系统要求.177.htm'就可以拉,
    那还要索引有什么用啊,
    我现在想的是通过索引就能调出相关网页
      

  6.   

    不能向调用hlp文件那样 Application.HelpKeyword('《代码大全》');直接指定索引名称就能定位对应的网页吗?
    哪个CHM为什么还要把索引对应的网页名称也要列出来呢??
      

  7.   

    以前做过。这要求chm文件和exe文件在同一个文件夹里。
    procedure TMainForm.N13Click(Sender: TObject);
    begin
      Winexec('help.chm',SW_SHOW);
      ShellExecute(Handle,'open',PChar('help.chm'),nil,nil,SW_SHOW);
    end;