该OnHint
事件不提供对有关显示提示的控件的任何信息的访问。
但是,OnShowHint
事件确实如此,您可以在该事件中完全自定义提示:
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: boolean; var HintInfo: THintInfo);
begin
if HintInfo.HintControl = DesiredControl then
begin
// customize HintStr, and/or HintInfo fields, as needed...
end;
end;
procedure TForm1.ApplicationEvents1Hint(Sender: TObject);
begin
statMain.SimpleText := Application.Hint;
end;
提供有关您可以自定义的提示的HintInfo
各种信息:
HintControl 正在进行
提示处理的控件的名称。
HintWindowClass
提示窗口控件的类。默认值为 THintWindow,但您可以指定从 THintWindow 派生的任何类。如果您想用自定义提示窗口代替 THintWindow,请使用此字段。
HintPos
提示窗口左上角在屏幕坐标中的默认位置。通过更改此值来更改窗口出现的位置。
HintMaxWidth
开始自动换行之前提示窗口的最大宽度。默认情况下,该值是屏幕的宽度(全局 Screen 变量的 Width 属性)。
HintColor
提示窗口的背景颜色。
CursorRect
用户鼠标指针必须位于的矩形,提示窗口才会出现。CursorRect 的默认值是控件的客户矩形。更改此值,以便可以将单个控件划分为多个提示区域。当用户将鼠标指针移到矩形外时,提示窗口消失。
CursorPos
鼠标指针在控件内的位置。
ReshowTimeout
提示系统在再次询问提示状态之前应该等待多长时间。默认情况下,该字段为零,表示提示状态不会改变。将其设置为非零值将导致提示在请求的毫秒数过去后采取行动,就好像用户将鼠标移出提示矩形并重新移入一样。这可用于推迟提示处理一段时间时间,或允许定期更新提示。
HideTimeout
显示提示的毫秒数。默认情况下,它设置为 Application 变量的 HintHidePause 属性的值。
HintStr
要在提示窗口中显示的字符串。这允许 OnHint 事件处理程序在显示之前修改提示的内容。默认情况下,它包含 GetShortHint 函数在传递 Application 变量的 Hint 属性值时返回的值。
HintData
要传递给提示窗口控件的附加数据。将此字段与 HintWindowClass 结合使用。
另外,仅供参考,您不需要使用TApplication(Event).OnHint
事件来TApplication.Hint
显示TStatusBar
. 如果将 StatusBar 的AutoHint
属性设置为 true,则 StatusBar 可以TApplication.Hint
自动显示更新。您只需要确保您没有OnHint
分配处理程序,否则AutoHint
将无法工作(OnShowHint
虽然很好)。