各位大虾好:  
    我想给我的delphi开发的软件写一个帮助文档,请问怎么写啊?我现在已经找到Microsoft Help Workshop这个软件,准备用这个软件写帮助,写好以后,delphi怎么调用它啊?请详细的给我解释一下,谢谢!

解决方案 »

  1.   

    1 uses shellapi
    ShellExecute(Handle, 'open', PChar('d:\ks\delphitips.chm'),nil, nil, SW_SHOW);2 
    if FileExists(ExtractFilePath(Application.ExeName)+'Help.CHM') then
      begin
        winexec('HH.EXE Help.CHM',SW_NORMAL);
      end楼主法的太多了。
      

  2.   

    uses ShellApi
    ShellExecute(handle, 'open', 'help.chm', nil, nil, SW_SHOWNORMAL);
    楼主的分太多了,接分!
      

  3.   

    怎么又问了!
    现在hlp文件用的越来越少。打开一个CHM格式的文件代码如下:
    procedure TMainForm.help1Click(Sender: TObject);
    var fpath:string;
    begin
    fpath:=ExtractFilePath(ParamStr(0))+'help.chm';
    ShellExecute(handle,nil,pchar(fpath),nil,nil,sw_shownormal);
    end;
    上面的代码中,首先获取当前执行文件(EXE文件)所在的路径,然后在此路径下寻找help.chm帮助文件并打开它,这就要求帮助文件和执行文件要放在同一目录下,如果你的帮助文件很多,有单独的子文件夹,那么对上述代码做一点修改即可。
      

  4.   

    安装HTML Help Work ShopHTML Help Workshop 是目前写HTML格式帮助文件的少数工具之一。它是完全免费的。你可以从微软网站把它Down下来http://www.microsoft.com/workshop/author/htmlhelp/)。以 HTML Help Workshop 1.2 版为例,安装过程相当简单,安装程序将更新Windows系统目录中的几个OCX。如果你的帮助系统是英文的,你可以在同样网站下载HTML Help的中文补丁。你安装好后,就可以写帮助了。书写 CHM 文件我不想在这里写复杂的例子,而且我用Dreamweaver2.0写HTML文件还不熟练。所以我只用最基本的结构表明如何写帮助,而且我没有深入研究Help的功能,例如Popup, 动画等等。但对于熟悉web设计的朋友,这可能不算什么。书写帮助的步骤:建立Help站点 
    建立工程 
    加入文件 
    建立内容文件 
    建立索引文件 
    编译Help工程 
    测试 
    在Delphi中使用 --------------------------------------------------------------------------------建立Help站点Help系统是一个超文本。HTML正是这样的一个东西。制作HTML帮助系统与做一个Web站点几乎完全相同。可能不一样的是:所有的链接都在内部,如同一个本地网站,当然直接http://...连出去一点也没有问题。所有在Web上的技术除了数据库端的CGI,ASP等等可能无法使用在Help里面。你只要写一大堆的*.HTML, Java和Java Script也肯定没有问题。但是我没有试。假设这个Help网站的首页是 Index.HTM。你应当把每一段文章(或一个Topic)写成一个HTML文件。以便以后一页页的调出。 建立工程在HTML Help Workshop中new一个工程,把Index.HTM加入到工程里。HTML Help Workshop会检索index所连接的文件,并把它们加入进来。加入文件你应该把所用到的所有文件都Add进工程。这样你在后面的步骤中就可以选择页面了。 建立内容文件点击HTML Help Workshop的Content页面,会提示生成一个内容文件(*.hhc)你主要在这里设定帮助的章节、标题。这里应该设计成一个树形结构,先建folder,再在Folder中加Page。重要的是Folder和Page名字要起好,因为它们最终会在帮助窗口的“目录”框中被显示出来。一步步地,加Folder,写名字,加Page,选择该Page连接的HTML文件.........好啦,内容加完了。 建立索引文件索引的建立方法类似Content。New 一个Key, 指明Key连接的文件。..... 编译Help工程好啦,编译!哗啦啦,一个Sample生成了。 在Delphi中使用CHM 到了关键的时候了 !由于目前HTML Help只有VC的头文件和库。要在Delphi中使用只能自己来啦。下面是我研究HTML Help的过程。经过分析,发现 HTML Help的使用的核心是HHCtrl.Ocx。OCX使用在Delphi中简直是太方便了。于是我就从Delphi中Install ActiveX。妄想把HHCtrl.OCX直接放到 Tool Panel上,结果HHCtrl.Ocx死活不能显示在Delphi的列表中,真是个顽固分子!后来我决定直接使用它。于是我把HHCtrl.Ocx当作普通的DLL加载。挑出了核心的HtmlHelpA函数(我没有处理双字节的函数所以HtmlHelpW我就管了)。接着我花了一个小时把HTMLHelp.H 翻译到了PAS。并增加了几个函数和变量以处理DLL的加载和卸载。于是只要有一个HTMLHelp_Decl.PAS 就可以搞定了。 言归正传,现在说说本例中Delphi如何使用这个文件。HTML Help的核心使用函数是 HtmlHelpA,声明如下:function HtmlHelpA hwndCaller:HWND; pszFile:PChar ; uCommand:UINT; dwData:DWORD_PTR ):HWND;stdcall; 所有到特定页面的引用都通过pszFile传递,uCommand表示某种操作。关于字符串传递的命名规则和Command的说明,请参考HTML Help workshop的联机帮助的API 章节。 我做的工作如下:封装了HHCtrl.OCX的调入,卸载,和HtmlHelpA。加入了两个函数:function HtmlHelp( hwndCaller:HWND; strFile:String; uCommand:UINT; dwData:DWORD_PTR ):HWND;procedure CloseHtmlHelpSystem;所有的操作都通过这两个函数搞定 !  HTMLHelp_Decl.Pas 使用方法:uses HTML Help_Decl.PAS; ....procedure TForm1.Button1Click(Sender: TObject);begin// 显示一个页面,函数内部自动加载 HHCtrl.OCX,并初始化HtmlHelp( handle, AppPath+'\Sample.chm::/HelpContent\index.htm', HH_DISPLAY_TOPIC, nil); end; ....procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin HtmlHelp( 0, '', HH_CLOSE_ALL, nil ); // 关闭你打开的所有帮助CloseHtmlHelpSystem; // 卸载HHCtrl.OCXend;   进一个的使用,请参考 HTML Help API 和Sample