Delphi应用程序与Chm帮助关联的简单实现(源代码)

原创 2003年06月09日 07:44:00

Delphi应用程序与Chm帮助关联的简单实现(源代码)

请参考:Delphi程序与Chm帮助关联的简单实现
http://www.csdn.net/Develop/Article/18/18116.shtm 

unit Unit1;
///  作者:李新  kelvinsdu@sina.com  QQ:1348513
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls;
const
  conHelpTitle='科研项目管理系统 2.0';
  HH_DISPLAY_TOPIC=0;//先查msdn,有好多command,自己改成0,1之类的
type
  TForm1 = class(TForm)
    EdtProjectManager: TEdit;   // helpcontext =10101
    Button1: TButton;
    Label1: TLabel;
    EdtFinanceInput: TEdit;  // helpcontext =10102
    function FormHelp(Command: Word; Data: Integer;
      var CallHelp: Boolean): Boolean;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure ShowChmHelp(sTopic:string);
var
  Form1: TForm1;
  function HtmlHelpA (hwndcaller:Longint; lpHelpFile:string; wCommand:Longint;dwData:string): HWND;stdcall; external 'hhctrl.ocx'

implementation
uses Unit2;
{$R *.DFM}
Function  CurrentExeFilepath:String; //返回当前的路径
var cdir:string;
Begin
    Result:='';
    SetLength(CDir,144);
    If GetCurrentDirectory(144,PChar(CDir))<>0 Then
      SetLength(CDir,StrLen(PChar(CDir)))
    Else
      RaiseLastWin32Error;
    Result:=CDir;
End;
procedure ShowChmHelp(sTopic:string);
var i:integer;
begin
  i:=HtmlHelpA(Application.Handle,Pchar(CurrentExeFilepath+'/help.chm'),HH_DISPLAY_TOPIC,sTopic);
  if i=0 then
  begin
      Showmessage(' help.chm 帮助文件损坏!');
      exit;
  end;
end;

function TForm1.FormHelp(Command: Word; Data: Integer;
  var CallHelp: Boolean): Boolean;
begin
   case Data of
     10100: ShowChmHelp('SystermIntroduction.htm');
     10101: ShowChmHelp('ProjectManager.htm');
     10102: ShowChmHelp('FinanceInput.htm');
     else  ShowChmHelp('SystermIntroduction.htm');
   end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OKBottomDlg:=TOKBottomDlg.create(nil);
  try
    OKBottomDlg.ShowModal;
  finally
    OKBottomDlg.free;
  end;
end;

end.

/////////////////////////

 

unit Unit2;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls;

type
  TOKBottomDlg = class(TForm)
    OKBtn: TButton;
    CancelBtn: TButton;
    cbQuickQuery: TComboBox;   // helpcontext =10200
    EdtSuperQuery: TEdit;  // helpcontext =10201
    function FormHelp(Command: Word; Data: Integer;
      var CallHelp: Boolean): Boolean;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  OKBottomDlg: TOKBottomDlg;

implementation
uses unit1;
{$R *.DFM}

function TOKBottomDlg.FormHelp(Command: Word; Data: Integer;
  var CallHelp: Boolean): Boolean;
begin
   case Data of
     10200: ShowChmHelp('QuickQuery.htm');
     10201: ShowChmHelp('SuperQuery.htm');
     else  ShowChmHelp('SystermIntroduction.htm');
   end;
end;

en

版权声明:本文为博主原创文章,未经博主允许不得转载。

Delphi7动态调用chm帮助文件,并使之打开指定的页面

         Chm格式的帮助是从windows98以后才出现的新的格式,与.hlp格式相比,具有更简单的编辑方式、更丰富的画面。它是通过Chm制作工具对网页文件进行编译得到的,所以理论上你可以把...
  • hui717
  • hui717
  • 2007年10月13日 15:03
  • 2545

Delphi程序与Chm帮助关联的简单实现

Delphi程序与Chm帮助关联的简单实现  作者:李新  kelvinsdu@sina.com  QQ:1348513 Chm格式的帮助是从windows98以后才出现的新的格式,与.hlp格式相比...
  • kelvinsdu
  • kelvinsdu
  • 2003年04月25日 16:25
  • 1125

好书推荐下载,DELPHI程序员必备手册2部(CHM格式),N部其他格式的delphi书籍,外加100部经典书籍下载(转载)

[更名魔法师]3.0http://www.onlinedown.net/soft/26845.htm绿色软件,无需安装,集多种改名软件功能于一身,是大批量整理MP3,图象等文件不可多得的工具。批量读取...
  • foreveryday007
  • foreveryday007
  • 2004年07月01日 15:06
  • 14725

应用程序与驱动程序是如何发生关联的

一般驱动函数通过file_operations这个结构体预留出外部接口(这种接口一般包括read,write,open,ioctl等),只有当驱动程序中预留了这种供外部访问的接口,用户程序才能访问驱动...
  • u010979030
  • u010979030
  • 2013年12月17日 11:45
  • 841

Android 帮助文档 和 书籍推荐

Android帮助文档的目录在:D:\android_sdk\docs; 打开index.html就可以看到了,但是这样打开文档,搜索等,非常慢; 解决方法网上比较多,这里推荐一个比较简单的; 下...
  • chinabinlang
  • chinabinlang
  • 2015年11月24日 15:55
  • 719

Delphi 使用CHM文件制作系统帮助文档(上下文感知帮助的制作)

一、基础知识简介         使用帮助提示窗口或状态栏只能提供简单、单一的帮助,无法对某一模块或应用程序整体提供系统的 帮助,因此运行Windows应用程序,需要帮助时一般都可以通过执行帮助...
  • xiongmao000738
  • xiongmao000738
  • 2011年10月08日 19:33
  • 2472

问题解决“WIN7系统 .CHM文件打开后显示html帮助执行程序停止工作”

今天遇到个问题,在看java的API帮助文档的时候,需要打开chm文件,下了个chm viewer,不能用,弃了 找其他打开软件又嫌费事,故而转window 自带的CHM阅读程序,编译的HTML帮助...
  • akenseren
  • akenseren
  • 2017年03月26日 15:04
  • 677

Delphi调用CHM帮助文档

在Win9.x的system目录下(或Win2000的system32目录下)可以找到hhctrl.ocx文件。在implementation里,作如下声明:function HtmlHelpA(hw...
  • yueyahe
  • yueyahe
  • 2006年06月27日 11:24
  • 1481

如何通过C#调用CHM帮助文件

通过.Net Framework提供的Help类来完成CHM帮助文件的调用,Namespace: System.Windows.Forms。 若要为应用程序提供帮助,调用Help类 ShowHelp ...
  • hiyavip
  • hiyavip
  • 2006年04月20日 10:56
  • 1312

CHM帮助文件在VB程序中的应用

CHM帮助文件在VB程序中的应用――HTML Help Workshop作 者:叶帆(http://blog.csdn.net/yefanqiu)一.工欲利其事,必先利其器――CHM制作之工具1. 首...
  • yefanqiu
  • yefanqiu
  • 2005年12月21日 15:26
  • 6185
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi应用程序与Chm帮助关联的简单实现(源代码)
举报原因:
原因补充:

(最多只允许输入30个字)