把控件的ShowHint属性设置成真值系统自动将ParentShowHint设置成假值应用程序部件的ShowHint属性可以决定整个程序的帮助提示是否有效如果应用程序的ShowHint 属性为真程序中各部件的帮助提示才有效 但是否显示还要取决于部件的SHowHint ParentShowHint及其父件的ShowHint属性如果应用程序的ShowHint属性为假值无论程序部件的属性如何设置程序中所有帮助提示都无效
Hint属性是显示在帮助提示框中的文本字符Hint属性应用于所有控件包括应用程序部件菜单部件因为应用程序部件不是可视部件因此不能在Object Inspector 窗口中定义Hint属性但可以在定义部件的Hint属性时同时定义应用程序部件的Hint 属性定义时只需用|字符会分开例如
EditHint := Name |Enter Name in the edit box
等价于
EditHint := Name;
ApplicationHint := Enter Name in the edit box
应用程序的Hint属性可用在OnHint事件
如果只定义了一个值Delphi把这个值同时赋给部件和应用程序部件的Hint属性 如果应用程序的ShowHint属性为假值所有的帮助提示将不显示 但可以利用程序部件的Hint属性显示其它提示如状态条等
当某一部件的SHowHint属性为真 但又没有定义Hint 属性 如果此时文件定义了Hint属性则此部件将使用文件的Hint值
OnHint事件
当用户把鼠标放在某一部件而该部件的Hint 值不为空值此时发生OnHint事件利用OnHint事件可以执行一些特殊的操作
最常用是利用OnHint事件显示状态条的标题状态条是用面板来实现的下面举例说明
这个例子使用了面板部件菜单一个编辑框菜单可随意设计 但需记住每个菜单项的Hint 值 另外 定义编辑框的Hint 值 把面板置于窗体底部( 将Align 属性置于dBotton)把面板标题置于左端(将Alignment属性置于taleftJustify)
OnHint 事件是应用程序部件的事件而应用程序部件是非可视部件不能使用Object Inspector窗体定义事件必须编写自己的OnHint事件
首先在TForm对象中宣称DisplayHint方法并在单元的implementation部分编写实现代码在DisplayHint方法中把应用程序的Hint属性赋给面板的标题另一个重要问题是必须把DisplayHint方法作为处理OnHint事件的方法窗体的OnCreate事件的代码解决了这个问题
下面列出了程序的完整代码当用户运行程序 把鼠标置于菜单或部件之上在窗体的状态条中将出现定义的提示
Type
TForm = class(TForm)
Button: TButton;
Panel: TPanel;
Edit: TEdit;
procedure FormCreate(Sender: TObject)
private
{ Private declarations }
public
procedure DisplayHint(Sender: TObject)
end;
var
Form: TForm;
implementation
{$R *FRM}
procedure TFormDisplayHint(Sender: TObject)
begin
PanelCaption := ApplicationHint;
end;
procedure TFormFormCreate(Sender: TObject)
begin
ApplicationOnHint := DisplayHint;
end;
自定义部件的帮助安装
Delphi有一个功能强大的帮助搜询引擎叫做多层帮助能为自定义的部件提供上下文敏感帮助多层帮助允许把自定义部件的多个帮助文件安装成Delphi 的帮助序列以提供给用户一种内层访问帮助文件的方式用户有三种方法访问帮助文件
[] [] [] []