麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi的Hint(1)

2019-11-18 17:57:54
字體:
來源:轉載
供稿:網友

Delphi中使用提示是如此簡單,只需將欲使用Hint的控件作如下設置:

ShowHint := True;

Hint := ‘提示信息’;

不必寫一行代碼,相當方便。

但有時我們又想自己定制提示的效果,使其看起來更美觀更具個人特色,沒關系,Delphi完全有辦法讓你寫出自己喜歡的Hint效果。

 

Delphi的Hint功能實現歸類在application類中,所以我們可以在Application類中看到數個關于Hint的屬性,這些屬性可以設置Hint窗口的顏色,停留時間,出現時間等,設置了這些屬性,將對整個工程的Hint功能起到影響。這樣做的好處當然是統一了Hint的風格,并且讓其他類不必去理會Hint的實現。

我們可以建一個簡單的工程,并放一個按鈕,將按鈕的ShowHint設為True,再對Hint設一個值。運行程序,當光標指到按鈕上時,便會出現一個提示窗口。

但如果我們在主窗口的創建事件中寫下:

PRocedure TForm1.FormCreate(Sender: TObject);

begin

 Application.ShowHint := False;

end;

這些再運行程序,就不再有提示出現了,由此可知Application的ShowHint控制整個工程的Hint是否顯示。

如果你對于平常所見的Hint窗口的顏色感到厭煩,那么可以設Application的HintColor為其他顏色。但此時有一個問題,如果HintColor設為黑色,則提示字體也為黑色,就看不到提示信息了。為此,我們得了解另一個全局對象,事實上當程序運行時,會創建三個全局對象:Application,Screen,Mouse,三個對象的職責非常明顯。Screen封閉了運行的工程在屏幕上的狀態,它有一個HintFont的屬性,允許你設置提示信息的字體。

我們可以寫如下的代碼:

procedure TForm1.Button1Click(Sender: TObject);

begin

  Application.HintColor := clBlack;

  Screen.HintFont.Color := clWindow;

  Screen.HintFont.Size := 14;

end;

運行程序看看效果,提示字體變為白色,且變大了。

 

另外Application有這三個屬性:

HintHidePause,HintPause,HintShortPause,控制著提示窗顯示的時間等。HintHidePause指定提示窗口在屏幕上顯示的時間,以毫秒為單位。HintPause則指定當你將光標移到有提示的控件上時,經過多長時間才會出現提示窗口,以毫秒為單位。而HintShortPause呢表示當你快速移動光標經過一組有Hint的控件時,顯示Hint的間隔。比如有兩個有Hint的控鈕,當你的光標快速從Btn1移到Btn2時,Hint經過HintShortPause毫秒才會顯示出來。

 

Application中有一個比較特殊的屬性Hint,我們不禁要奇怪,Hint指定的是那個控件的提示呢。其實Hint屬性的一個很大的用途是給那些沒有辦法直接出現Hint窗口的控件一個機會,使它們能夠通過別的方式出現提示。比如菜單,我們沒有辦法使菜單出現Hint窗口,但我們可以使菜單的Hint出現在狀態欄上的。

我們在上面的工程主窗口中加一個狀態欄,并在加一個菜單控件,設置幾個菜單項,并給每個菜單薦的Hint屬性設置一些字符串。

然后寫下:

procedure TForm1.FormCreate(Sender: TObject);

begin

 Application.OnHint := WhenHint;

end;

 

procedure TForm1.WhenHint(sender: TObject);

begin

  StatusBar1.SimpleText := Application.Hint;

end;

運行程序,當你指到菜單項時,看,狀態欄上出現了提示了。

 

上面可以看到,通過一些簡單的代碼,就可以使得提示別具特色。但人們是永遠不會滿足的,他們總想能不能做更好看的Hint呢,甚至對Hint的窗口風格提出了要求。Delphi的工程師們早想到了這一點,他們通過類的繼承設定了一個提示窗口的父類,即我們看到的那個Hint窗口,我們可以通過繼承它并覆蓋它所提供的虛擬方法來寫自己的提示窗口。

 

去讀一讀HintWindow的源碼吧,你只要覆蓋幾個虛擬方法,你就可以做出很漂亮的提示出來了。

 

Delphi的Hint雖然簡單易用,但卻不夠靈活,因為它提供了統一的風格,所以你不能指定某個提示為錯誤指示,可某個提示為警告提示。關于這個,我們要用API來實現,在網上找一個漫畫式提示,有很多文章可用。這里不再說述。


 


上一篇:用Delphi做一個有顏色屬性的按鈕

下一篇:Delphi中對象解除技巧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 久久久一区二区 | 毛片毛片免费看 | 成人在线免费观看网址 | 黄色片视频在线观看 | 国产在线精品一区二区夜色 | 亚洲第一页中文字幕 | 国产精品久久久久久久久久了 | 成人福利在线免费观看 | 视频一区二区中文字幕 | 久久久一区二区三区精品 | 神马视频我不卡 | 久久久www成人免费毛片 | 高清国产午夜精品久久久久久 | 毛片在线免费播放 | 毛片视频网站在线观看 | 72pao成人国产永久免费视频 | 国产精品视频在 | 欧美视频网 | 国产精品久久久久久婷婷天堂 | 中文字幕爱爱视频 | 91精品国产91久久久久久不卞 | 中文字幕欧美日韩 | 久久99精品久久久久久国产越南 | 91在线精品亚洲一区二区 | 一级黄色在线观看 | 在线看免电影网站 | javhdfreejaⅴhd| 蜜桃麻豆视频 | 色毛片 | 成人羞羞在线观看网站 | 中文欧美日韩 | 精品亚洲一区二区三区 | 最近中文字幕一区二区 | 日本在线视频免费 | 成片免费大全 | 中文字幕欧美视频 | 免费人成年短视频在线观看网站 | 亚洲精品一区二区三区大胸 | 成人一区三区 | 日韩av电影免费在线观看 | 91精品国产92久久久久 |