Delphi 使用HLP文件制作系统的帮助文档

1、基础知识简介

        使用帮助提示窗口或状态栏只能提供简单、单一的帮助,无法对某一模块或应用程序整体提供系统的帮助,因此运行Windows应用程序,需要帮助时一般都可以通过执行帮助菜单获得整个应用程序的帮助,也可以运行某一部分时单击帮助按钮或按“F1”键获得相关的帮助。Delphi应用程序能够方便地应用帮助系统。下面介绍应用程序动态地运行帮助系统的方法。

 

2、HLP文件的结构:

        HLP(Microsoft Help Workshop)是微软的一种帮助文件格式,HLP格式已经逐渐被CHM格式所替代,Microsoft Help Workshop(以下简称为HW)是一款专业的制作HLP文件的软件。HW与HTML Help Workshop均是微软开发的制作帮助文件的软件。由于HLP格式出现较早,目前大部分的基于Web的技术都不可以使用。但是由于 HLP文件的界面整洁、对文件的压缩比率较高等特点,目前还广泛应用在很多领域当中。

 

3、应用程序和帮助文件的关联

        有了相应的帮助文件还要为应用程序定义帮助文件,以便在用户需要帮助时应用程序能打开相应的帮助文件。定义应用程序的帮助文件有两种方法:

第一种方法:

        在Delphi集成开发环境中选择“Options | Project”菜单项,系统弹出工程选择对话框,再选择Application页面,然后在辅助文件HelpFile中输入帮助文件名。

 

第二种方法:

        在主窗体的OnCreate事件中直接为应用程序(Application)的HelpFile特性赋值。HelpFile特性的声明如下:property HelpFile: string; 这个特性记载帮助文件的名字,可以在运行期间设置,也可以在设计期间设置。

 

4、通过功能键F1调用帮助文件

        Windows应用程序经常通过功能键F1提供帮助,当程序运行到某一部分需要帮助时,只要按F1键就会弹出跟当前输入焦点控件相关主题的帮助文件。Delphi开发的应用程序若要提供这种功能只需要设置HelpContext特性。HelpContext特性的声明如下:
property HelpContext: THelpContext;//type THelpContext = -MaxLongInt..MaxLongInt;

说明:这个特性用于设置帮助文件中用于识别主题的上下文编号,若该参数为0则不调用帮助文件。

 

5、通过菜单调用帮助文件(应用程序控件的三个函数)

         除了功能键F1以外windows应用程序还可以通过菜单、工具栏、按钮等调用帮助文件,delphi开发的应用程序提供这类功能时可以调用应用程序控件(Application)的三个函数来实现,下面是调用帮助文件的三个函数的声明以及使用方法。

1>、HelpContext函数

function HelpContext(Context: THelpContext): Boolean;//type THelpContext = -MaxLongInt..MaxLongInt;

该函数调用Windows的WinHelp函数,Context参数是帮助文件的上下文编号。如果HelpFile(应用程序的帮助文档)特性是空字符,这个函数返回假值,其它情况均返回真值。

 

2>、HelpJump函数

function HelpJump(const JumpID: string): Boolean;

该函数调用Windows的WinHelp函数,JumpID参数是帮助文件中唯一辨识帮助主题的字符串。如果HelpFile特性是空字符,这个函数返回假值,其它情况均返回真值。说明:以上两个函数一般可用于响应工具栏或按钮的OnClick事件,显示相关主题内容。

 

3>、HelpCommand函数
function HelpCommand(Command: Word; Data: Longint): Boolean;

该函数调用Windows的WinHelp函数,Command参数指定命令的种类,Data参数跟Command参数有关。如果HelpFile特性是空字符,这个函数返回假值,其它情况均返回真值。

 

关于Command参数指定的命令种类请参考Windows的WinHelp函数,下面仅列出常用的命令

HELP_FINDER: 显示帮助的主题,索引窗口。  Data:忽略,一般是0

HELP_CONTEXT:显示指定主题的帮助内容。 Data:无符号的长整形,帮助文件的上下文编号。

HELP_HELPONHELP:显示Windows系统的介绍帮助文件使用方法的帮助。 Data:忽略,一般是0

HELP_QUIT:关闭帮助文件。 Data:忽略,一般是0

HELP_PARTIALKEY:显示指定关键字的帮助内容。 Data:关键字的地址。

说明: HelpCommand函数主要用于响应菜单、工具栏、按钮的OnClick事件,它可以完成HelpContext和HelpJump函数的所有功能。另外调用这三个函数时触发应用程序控件(Application)的OnHelp事件。

 

6、通用对话框中使用帮助文档

         Delphi提供的通用对话框(OpenDialog等)中都能显示一个帮助按钮。如果程序显示了对话框中的帮助按钮,应该确保应用程序的帮助文件中有相应的主题。

在通用对话框中使用帮助系统,需要以下三个步骤:

1>、把对话框的属性Option|ShowHelp特性设置成True,这样在程序运行时将出现帮助按钮。

(ShowHelp与其控件的名字相关,例如字体对话框ShowHelp特性称为fdShowHelp,打开对话框为ofShowHelp。

2>、为对话框控件的HelpContext特性设置帮助文件的上下文编号。

3>、定义应用程序的帮助文件名。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有原文有译文,下面是其中一段: Original Integer types An integer type represents a subset of the whole numbers. The generic integer types are Integer and Cardinal; use these whenever possible, since they result in the best performance for the underlying CPU and operating system. The table below gives their ranges and storage formats for the current 32-bit Object Pascal compiler. Type Range Format Integer -2147483648..2147483647 signed 32-bit Cardinal 0..4294967295 unsigned 32-bit Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword. Type Range Format Shortint -128..127 signed 8-bit Smallint -32768..32767 signed 16-bit Longint -2147483648..2147483647 signed 32-bit Int64 -2^63..2^63 signed 64-bit Byte 0.255 unsigned 8-bit Word 0.65535 unsigned 16-bit Longword 0..4294967295 unsigned 32-bit In general, arithmetic operations on integers return a value of type Integer which, in its current implementation, is equivalent to the 32-bit Longint. Operations return a value of type Int64 only when performed on an Int64 operand. Hence the following code produces incorrect results. var I: Integer; J: Int64; ... I := High(Integer); J := I + 1; To get an Int64 return value in this situation, cast I as Int64: ... J := Int64(I) + 1; For more information, see Arithmetic operators. Note: Most standard routines that take integer arguments truncate Int64 values to 32 bits. However, the High, Low, Succ, Pred, Inc, Dec, IntToStr, and IntToHex routines fully support Int64 arguments. Also, the Round, Trunc, StrToInt64, and StrToInt64Def functions return Int64 values. A few routines including Ord cannot take Int64 values at all. When you increment the last value or decrement the first value of an integer type, the result wraps around the beginning or end of the range. For example, the Shortint type has the range -128..127; hence, after execution of the code var I: Shortint; ... I := High(Shortint); I := I + 1; the value of I is -128. If compiler range-checking is enabled, however, this code generates a runtime error. Topic groups See also Numerals Ordinal types: Overview Real types 译文 整数类型 整数类型表示全部数字的子界。一般的整数类型是Integer和Cardinal,需要时,应当尽可能地使用这两种类型,因为它们在各种CPU和操作系统中都提供最佳的性能。下面是当前32位Object Pascal编译器中这两种整数类型的范围和存储格式: 类型 范围 格式 Integer -2147483648..2147483647 含符号的32位 Cardinal 0..4294967295 无符号的32位 基本整数类型包括Shortint、Smallint、Longint、Int64、Byte、Word、Longword等,如下: 类型 范围 格式 Shortint -128..127 含符号的8位 Smallint -32768..32767 含符号的16位 Longint -2147483648..2147483647 含符号的32位 Int64 -2^63..2^63 含符号的64位 Byte 0.255 无符号的8位 Word 0.65535 无符号的16位 Longword 0..4294967295 无符号的32位 通常,作用于整数的算术运算符返回Integer类型的值,在当前执行中,等价于32位的长整型(LongInt)。仅当对Int64类型执行运算时,运算结果返回Int64类型。因此,下面的代码将执行后得到的结果是不正确的: var I: Integer; J: Int64; ... I := High(Integer); J := I + 1; 要使返回值是Int64类型,在上面的情况中可以将 I 转换为Int64: ... J := Int64(I) + 1; 更多信息见算术运算符。 注意:大多数标准例程在处理Int64值的时候,都将参数截断为32位。不过,High、Low、Succ、Pred、Inc、Dec、IntToStr、IntToHex等例程完全支持Int64参数。此外,Round、Trunc、StrToInt64、StrToInt64Def等函数也可以返回Int64值。少数例程根本不能将Int64值作为参数,如Ord。 对于整数类型,当要递增最后一个值或要递减第一个值的时候,运算结果将在范围的起点和中点之间环绕。例如,ShortInt类型的范围是 -128..127,因此,执行下面的代码: var I: Shortint; ... I := High(Shortint); I := I + 1; 之后,变量 I 的值为 –128。如果范围检查编译指示有效({$R+},缺省为{$R-}),那么上面的代码将产生一个运行时错误。 主题组 相关主题 数字 序数类型:概述 实数类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值