第十一章-Delphi应用程序的应用(二)(2)

TApplication部件的OnHelp事件响应帮助事件。 当应用程序接收到一个所需的帮助

时,发生OnHelp事件。使用OnHelp事件可以在需要帮助时定义一些特殊过程。 以下的例子改变了应用程序的帮助文件,AppHelp函数用来处理OnCreate事件。 

function TForm1.AppHelp(Command.Word;Data : lontint) : Boolean

begin

if OpenDialog1.Exeeute then

Application HelpFile := OpenDialog1.FileName;

end; 

11.2.2 通用对话框中使用帮助系统 

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

在通用对话框中使用帮助系统,要做到以下三点:

 1. 把对话框的Option|SHOWHelp属性设置成true,这样在程序运行时将出现帮助按钮。 ShowHelp 属性与其部件的名字相关, 例如字体对话框的 ShowHelp 属性称为fdShowHelp。

  2. 为对话框部件定义帮助文件。

3. 定义应用程序的文件名。  

11.3 Delphi帮助提示(Hint)的应用 

使用Delphi集成开发环境时,用户常把鼠标置于程序部件上,如加速按钮,对齐按钮等。鼠标在部件上停留超过一定时间后,Delphi将会显示一个弹出窗口, 里面有部件名称和概述。

这就是Delphi的帮助提示。Delphi的应用程序可通过定义ShowHint 属性实现帮助提示。 

11.3.1 帮助提示的显示 

ShowHint属性可应用于所有的控件和应用程序部件,控件的ShowHint 属性含义与程序的稍有不同。控件的ShowHint属性决定某一控件是否显示帮助提示,如果ShowHint 是真值,当用户把鼠标置于控件之上超过一定时间后,控件将出现帮助提示。如果是假值,则不出现提示。控件是否显示还决定于控件的ParentShowHind属性。如果 ParentShowHint是真值,控件的父类的ShowHint属性将决定控件是否显示帮助提示。 假如有一个分组框和一个检查框,分组框是检查框的父件。表11.3说明了子件与父件的 ShowHint,ParentShowHint属性设置对子件帮助提示的影响。 

表11.3 Hint属性设置对帮助提示的影响

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

分组框ShowHint 检查框ParentShowHint 检查框ShowHint 帮助提示

─────────────────────────────────────

T或F F T 显示

  T T F 显示

 F T T 不显示

T或F         F F 不显示

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

        T表示真值,F表示假值 

把控件的ShowHint属性设置成真值,系统自动将ParentShowHint设置成假值。应用程序部件的ShowHint属性可以决定整个程序的帮助提示是否有效。如果应用程序的ShowHint 属性为真,程序中各部件的帮助提示才有效, 但是否显示还要取决于部件的SHowHint, ParentShowHint及其父件的ShowHint属性,如果应用程序的ShowHint属性为假值,无论程序部件的属性如何设置,程序中所有帮助提示都无效。

Hint属性是显示在帮助提示框中的文本字符。Hint属性应用于所有控件,包括应用程序部件菜单部件。因为应用程序部件不是可视部件,因此不能在Object Inspector 窗口中定义Hint属性。但可以在定义部件的Hint属性时同时定义应用程序部件的Hint 属性,定义时只需用“|"字符会分开,例如: 

Edit.Hint := 'Name |Enter Name in the edit box' 

等价于

Edit.Hint := Name;

Application.Hint := Enter Name in the edit box 

应用程序的Hint属性可用在OnHint事件。

如果只定义了一个值,Delphi把这个值同时赋给部件和应用程序部件的Hint属性。 如果应用程序的ShowHint属性为假值,所有的帮助提示将不显示, 但可以利用程序部件的Hint属性显示其它提示,如状态条等。

当某一部件的SHowHint属性为真, 但又没有定义Hint 属性, 如果此时文件定义了Hint属性,则此部件将使用文件的Hint值。 

11.3.2 OnHint事件 

当用户把鼠标放在某一部件,而该部件的Hint 值不为空值,此时发生OnHint事件。利用OnHint事件可以执行一些特殊的操作。

最常用是利用OnHint事件显示状态条的标题,状态条是用面板来实现的。下面举例说明。

这个例子使用了面板部件,菜单,一个编辑框。菜单可随意设计, 但需记住每个菜单项的Hint 值。 另外, 定义编辑框的Hint 值, 把面板置于窗体底部( 将Align 属性置于dBotton)把面板标题置于左端(将Alignment属性置于taleftJustify)。

OnHint 事件是应用程序部件的事件,而应用程序部件是非可视部件,不能使用Object Inspector窗体定义事件,必须编写自己的OnHint事件。

时间: 2024-10-26 04:19:54

第十一章-Delphi应用程序的应用(二)(2)的相关文章

第十一章-Delphi应用程序的应用(一)(3)

11.1.2.4 编译帮助工程文件 有两种编译器可以编译帮助工程文件:HCP.EXE ,H31.EXE.两种编译器编译的文件不能在Winddow3.0中使用,但能在Windows 3.1中使用.其中HCP.EXE是保护模式"编译器",它能更好的使用内存.必须在Windows的Dos窗口中使用HCP.EXE. 编译前要注意两个问题: 1. 所有源文件必须以RTF格式保存: 2. 下面的文件必须在同一个目录下 ● 所有的.RTF文件 ● 帮助编译器(HCP.EXE,HC31.EXE) ●

第十一章-Delphi应用程序的应用(二)(1)

所有的应用程序都是TApplication的派生类.TApplication有三种方法调用在线帮助系统. HelpContext方法可调用WinHelp(关于Winhelp的内容见上节).它把HelpFile 中的文件名和一个文本代码传递给WinHelp.HelpFile是TApplication的字符串类型的属性,专门用来存放Help文件的.如果HelpFile属性是空字符,HelpContext返回假值,其它情况均返回真值. 下面的例子使用窗体上的一个按钮,当用户单击按钮,屏幕出现DATA.

第十一章-Delphi应用程序的应用(二)(3)

首先,在TForm1对象中宣称DisplayHint方法,并在单元的implementation部分编写实现代码.在DisplayHint方法中,把应用程序的Hint属性赋给面板的标题.另一个重要问题是必须把DisplayHint方法作为处理OnHint事件的方法.窗体的OnCreate事件的代码解决了这个问题. 下面列出了程序的完整代码.当用户运行程序, 把鼠标置于菜单或部件之上,在窗体的状态条中将出现定义的提示. Type TForm1 = class(TForm) Button1: TBu

第十一章-Delphi应用程序的应用(一)(1)

11.1 Help文件的建立 Help文件是Micosoft Windows3.0以上的版本提供的超文本帮助文件.利用这种超文本,用户可非常方便地使用帮助文件系统.帮助文件是以主题为主线进行编写的,一个主题可以跳转至相关的主题,也可按关键字进行主题查询.帮助文件与软件开发工具相结合,可实现应用程序的'上下文敏感',而且帮助系统自动装入."上下文敏感"是指根据程序当前执行代码来显示Help文件的相应部分. Windows提供的很多应用程序都有帮助系统,读者可以从这些系统中了解应用程序的许

第十一章-Delphi应用程序的应用(一)(2)

4.插入+脚标.在主题第一行的K脚标之后插入+脚标.在主题文本以下的+ 脚标处键入浏览顺序标识符.标识符可以是一个数(如005),或一组名字加上冒号和数(如 CAL C:005)一个主题只能有一个浏览顺序. 热点是用户可以激发某种动作的文本或图像.一个热点可跳转至另一个主题.在其它窗口中显示主题或执行宏.多数情况下,重要字段被设计成热点以实现主题跳转. 以下是实现主题跳转的步骤: 1. 输入要跳转的字段或插入图像: 2. 高亮度选择字段,用双下划线格式化.在MicroSoft Word中,按AL

第十九章-Delphi自定义部件开发(二)(1)

19.2.2 Delphi部件编程 19.2.2.1 创建属性 属性(Property)是部件中最特殊的部分,主要因为部件用户在设计时可以看见和操作它们,并且在交互过程中能立即得到返回结果.属性也很重要,因为如果将它们设计好后,将使用户更容易地使用,自己维护起来也很容易. 为了使你在部件中更好地使用属性,本部分将介绍下列内容: ● 为什么要创建属性 ● 属性的种类 ● 公布(publishing)继承的属性 ● 定义部件属性 ● 编写属性编辑器 1. 为什么要创建属性 属性提供非常重要的好处,最

第十九章-Delphi自定义部件开发(二)(4)

⑵ 定义处理过程类型 一旦你决定产生事件,就要定义事件如何被处理,这就是要决定事件处理过程的类型.在大多数情况下,定义的事件处理过程的类型是简单的通知类型(TNotifyEvent)和已定义的事件类型. 通知事件只是告诉你特定的事件发生了,而没有描述什么时候和什么地方.通知事件使用时只带一个TObject类型的参数,该参数是Sender.然而所有通知事件的处理过程都知道是什么样的事件发生和发生在那个部件.例如:Click事件是通知类型.当编写Click事件的处理过程时,你知道的是Click事件发

第十九章-Delphi自定义部件开发(二)(3)

这三句表达式使用RegisterPropertyEditor三种不同的用法: ● 第一种最典型 它注册了用于所有TComponent类型属性的属性编辑器TComponentProperty.通常,当为某种类型属性注册属性编辑器时,它就能应用于所有这种类型的属性,因此,第二和第三个参数为nil. ● 第二个表达式注册特定类型的属性编辑器 它为特定部件的特定属性注册属性编辑器,在这种情况下,编辑器用于所有部件的Name属性. ● 第三个表达式介于第一个和第二个表达式之间 它为部件TMenu的TMen

第十二章-异常处理与程序调试(二)(5)

12.4 程序调试简介 Delphi提供了一个功能强大的内置调试器(Integrated Debugger), 因而对程序的调试不用离开集成开发环境(IDE)就可以进行. 程序错误基本可以分为两类,即运行时间错和逻辑错.所谓运行时间错是指程序能正常编译但在运行时出错.逻辑错是指程序设计和实现上的错误.程序语句是合法的,并顺利执行了,但执行结果却不是所希望的. 对于这两类错误,调试器都可以帮助你快速定位错误,并通过对程序运行的跟踪和对变量值的监视帮助你寻找错误的真正原因和解决错误的途径. 程序调试