对不起楼主,粘贴错了,呵呵。
重来
http://www.itwen.com/07prog/06delphi/delphi20061027/67693.html

解决方案 »

  1.   

    在接口入引用ShellApi单元 
    然后在需要调用chm的地方写 
    ShellExecute(0,'open',pchar('CHM的路径'),nil,nil,sw_show); 如果还不行,请检查你的CHM文档是否正确
      

  2.   

    procedure TFrm_Parent.OnHelp(Sender: TObject);
    var
      lStrUrl, lStrPart: string;
      si: TStartupInfo;
      pi: TProcessInformation;
    begin
      lStrUrl := 'mk:@MSITStore:' +ExtractFilePath(ParamStr(0)) +
        'LMIS301Help.chm::/Client/';
      lStrPart := Copy(Trim(Name), 5, 4);
      if lStrPart = 'Cata' then
        lStrUrl := lStrUrl + 'LCatalogue/'
      else if lStrPart = 'Curr' then
        lStrUrl := lStrUrl + 'LCurrency/'
      else if lStrPart = 'Nobo' then
        lStrUrl := lStrUrl + 'LNobook/'
      else if lStrPart = 'Para' then
        lStrUrl := lStrUrl + 'LParams/'
      else if lStrPart = 'Peri' then
        lStrUrl := lStrUrl + 'LPeriodical/'
      else if lStrPart = 'Stoc' then
        lStrUrl := lStrUrl + 'LStock/'
      else if lStrPart = 'Stor' then
        lStrUrl := lStrUrl + 'LStore/'
      else
        lStrUrl := lStrUrl;  if lStrUrl <> '' then
      begin
        lStrUrl := lStrUrl + Name +'.htm';
    //    ShowMessage(lStrUrl);
        ZeroMemory(@si, SizeOf(si));
        si.cb := SizeOf(si);
        ZeroMemory(@pi, SizeOf(pi));
        CreateProcess(nil, PChar('hh ' + lStrUrl),
          nil, nil, False, 0, nil, nil, si, pi);
        if pi.hProcess <> 0 then CloseHandle(pi.hProcess);
        if pi.hThread <> 0 then CloseHandle(pi.hThread);
      end;
    end;