📄 jq6.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>改造HINT的输出方式</title>
</head>
<body stylesrc="API扩展Delphi函数.htm" bgcolor="#EEEEFF">
<p align="center"><big><big><big>改造HINT的输出方式</big></big></big></p>
<p> <br>
Delphi为每个可视构件(而非快速按钮专属)都提供了Hint
<br>
及ShowHint特性,其中Hint属性指定文本提示盒中的文本, <br>
而ShowHint属性则决定鼠标指向构件时是否显示文本提示盒, <br>
当ShowHint值为True时,显示文本提示盒。用户可在对象监 <br>
视器(ObjectInspector)的属性栏中设置或在程序中修改Hint <br>
及ShowHint属性。 <br>
除此之外,Delphi还在类TApplication中提供了 <br>
HintColor、HintPause、HintHidePause、HintShortPause几 <br>
个属性来控制文本提示盒的输出方式。 <br>
一般来说,HintColor、HintPause、HintHidePause、 <br>
HintShortPause通常在Form的OnCreate事件中设定它们的值 <br>
(如有需要的话),如以下的一段程序。 <br>
ProcedureTMainForm.FormCreate(Sender:TObject); <br>
begin <br>
Application.HintPause:0;{使文本提示盒立即出现}
<br>
Application.HintPause:clBlue;{以蓝色小方框的 <br>
方式出现} <br>
Application.HintHidePause:10000;{延长停留时间 <br>
为10秒} <br>
Application.HintShortPause:100; <br>
end; <br>
另外,在编程中,我们还可以通过TApplication的OnHint
<br>
事件获取鼠标指向构件的Hint文本。 <br>
事实上,Delphi提供的文本提示盒输出方框、文本字型都
<br>
太小,既不美观亦不易看清。值得庆幸的是,Delphi2.0版提 <br>
供了全部构件的源代码,我们可以通过对类TApplication的 <br>
源码作一些小修改,增加一个HintFont的属性,即可象修改 <br>
HintColor一样来修改文本提示盒的字体、字型大小等。 <br>
TApplication是在Forms单元里定义的,因此让我们打开
<br>
Forms.pas单元文件来作以下一些修改: <br>
ProcedureSetHintColor(Value:TColor}; <br>
ProcedureSetHintFont(Value:TFont); <br>
{1997.04.19Mynewidea} <br>
PropertyHintColor: <br>
TColorreadFHintColorWriteSetHintColor; <br>
PropertyHintFont:TFontwriteSetHintFont; <br>
{1997.04.19Mynewidea} <br>
ProcedureTApplication.SetHintColor(Value:Color); <br>
上增加一个过程 <br>
{1997.04.19Mynewidea} <br>
ProcedureTApplication.SetHintFont(Value:TFont); <br>
beginif(Value nil)and(FHinWindow nil)then <br>
FHintWindow.Canvas.Font:Value; <br>
end;{1997.04.19Mynewidea} <br>
别忘了在新增的语句旁作一些必要的注释,如上面的
<br>
{1997.04.19Mynewidea},可以很清楚地知道哪些语句是你 <br>
自己加进去的。 <br>
将修改后的Forms.pas存盘,然后重建库文件,以后在
<br>
你的库文件里,类TApplication就多了一个属性HintFont, <br>
你就可以很轻易的通过HintFont属性来修改文本提示盒的字 <br>
体、字型大小了,如以下一段程序: <br>
ProcedureTMainForm.FormCreate(Sender:TObject); <br>
Var <br>
NewHintFont:TFont.Create; <br>
begin <br>
NewHintFont:TFont.Create; <br>
NewHintFont.Name:′楷体-GB2312′;{设置字体为
<br>
楷体} <br>
NewHintFont.Size:12;{设置字型大小为12} <br>
Application.HintFont:NewHintFont; <br>
end; <br>
此外,Delphi绘制文本提示盒是在类THintWindow的方法
<br>
ActivateHint中通过WindowsAPI资源函数SetWindowPos来实 <br>
现的,这段代码在Controls.pas单元文件里,有兴趣的读者 <br>
可以进一步修改这段代码以绘制其他任意形状(如椭圆、圆等)
<br>
而不仅仅是矩型方框的文本提示盒!但或许最好的方法是从类 <br>
THintWindow继承下来一个新类,并重载Activate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -