Delphi的Hint入门指导,第1张

Delphi的Hint入门指导,第2张

在Delphi中使用提示就是这么简单,只需如下设置控件使用提示:
show hint:= True;

提示:= '提示信息';

你不用写一行代码,非常方便。

但是有时候我们想自定义提示的效果,让它看起来更漂亮更有个性。没关系,Delphi有办法让你写出自己喜欢的提示效果。

Delphi的提示功能的实现是分类在Application类中的,所以我们可以在Application类中看到几个关于提示的属性。这些属性可以设置提示窗口的颜色、停留时间、出现时间等。设置这些属性会影响整个项目的提示功能。这样做的好处当然是统一了Hint的风格,让其他类忽略了Hint的实现。

我们可以构建一个简单的项目,放一个按钮,将按钮的ShowHint设置为True,然后为Hint设置一个值。运行程序,当光标指向按钮时,会出现一个提示窗口。

但是如果我们在主窗口的创建事件中写入:

程序TForm1。FormCreate(发件人:to object);

开始

申请。show hint:= False;

结束;

再次运行这些程序,就不会再有提示了。所以Application的ShowHint控制着整个项目的提示是否显示。

如果你厌倦了你经常看到的提示窗口的颜色,你可以设置应用程序的HintColor为另一种颜色。但是,这时候有一个问题。如果HintColor设置为黑色,提示字体也将为黑色,提示信息将不可见。因此,我们必须了解另一个全局对象。实际上,当程序运行时,会创建三个全局对象:应用程序、屏幕和鼠标。这三个对象的责任非常明显。Screen在屏幕上关闭正在运行的项目的状态,它有一个HintFont的属性,允许你设置提示信息的字体。

我们可以编写以下代码:

程序TForm1。Button1Click(发件人:to object);

开始

申请。hint color:= cl black;

屏幕。hint font . Color:= cl window;

屏幕。hint font . Size:= 14;

结束;

运行程序看效果,提示字体变白变大。

此外,应用程序具有以下三个属性:

HintHidePause,HintPause,HintShortPause,控制提示窗口的显示时间等。以毫秒为单位指定提示窗口在屏幕上显示的时间。HintPause指定当您将光标移到提示控件上时提示窗口出现的时间,以毫秒为单位。另一方面,当您将光标快速移动到一组带有提示的控件上时,HintShortPause指示提示之间的间隔。例如,有两个带有提示的控制按钮。当您的光标从Btn1快速移动到Btn2时,在HintShortPause毫秒后会显示提示。

Application中有一个特殊的属性Hint,我们不禁怀疑Hint指定了那个控件的提示。其实,Hint属性的一个很大的用途就是给那些不能直接显示提示窗口的控件一个机会,让它们可以用其他方式显示提示。比如菜单,我们不能让菜单出现提示窗口,但是我们可以让菜单的提示出现在状态栏上。

我们在上面这个项目的主窗口中添加一个状态栏,添加一个菜单控件,设置几个菜单项,为每个菜单推荐的提示属性设置一些字符串。

然后写下:

程序TForm1。FormCreate(发件人:to object);

开始

申请。on hint:= when hint;

结束;

程序TForm1。WhenHint(发件人:to object);

开始

StatusBar1。SimpleText :=应用程序。提示;

结束;

运行程序。当您指向该菜单项时,看,状态栏上会出现提示。

正如你在上面看到的,通过一些简单的代码,你可以让提示符变得独一无二。但是人永远不会满足。他们总想做出更好的提示,甚至对提示的窗口样式提出要求。德尔福的工程师们早就想到了这一点。他们通过继承类来设置一个提示窗口的父类,也就是我们看到的提示窗口。我们可以通过继承它并重写它提供的虚方法来编写自己的提示窗口。

阅读HintWindow的源代码。只需要覆盖几个虚方法,就可以做出漂亮的提示。

Delphi的Hint虽然简单易用,但是不够灵活,因为它提供了统一的样式,所以你不能指定某个提示为错误指示,但是某个提示是警告提示。关于这个,我们得用API来实现。在网上找一个漫画提示。有许多文章可用。这里就不说了。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Delphi的Hint入门指导

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情