在Delphi中實(shí)現(xiàn)動(dòng)態(tài)字幕
2019-11-18 18:48:04
供稿:網(wǎng)友
如果大家使用過(guò)《金山詞霸》或《東方快車(chē)》的話,一定會(huì)對(duì)其“關(guān)于”窗口中的滾動(dòng)字幕感興趣,其實(shí)利用Delphi中的Timer控件可以很輕松地實(shí)現(xiàn)這一功能。
一、設(shè)計(jì)思路
首先在窗體上放置一個(gè)Panel控件,并在Panel控件中放置需要顯示的文字,然后通過(guò)Timer控件,在一定的間隔時(shí)間內(nèi)不斷改變Panel控件的位置就可以實(shí)現(xiàn)滾動(dòng)字幕的效果了。
二、實(shí)現(xiàn)方法
1.新建一個(gè)窗體,設(shè)置其屬性如下:
Name:frmAbout1
AutoScroll:False
2.在窗體上放置一個(gè)Panel控件,其默認(rèn)名稱(chēng)為Panel1,設(shè)置其屬性如下:
BevelOuter:bvNone
Caption:(設(shè)為空)
調(diào)整Panel1的高度和寬度,使其成一豎長(zhǎng)條形,其高度視需顯示的內(nèi)容多少而定(可以大于窗體的高度)。
3.在Panel1上面放置Label控件以顯示文字,當(dāng)然你也可以在上面放置Image控件來(lái)顯示圖片,但圖片的尺寸不可太大,否則會(huì)影響顯示效果。
4.在窗體上放置一個(gè)Timer控件,其默認(rèn)名稱(chēng)為T(mén)imer1,將其Interval屬性值設(shè)為50,并在其OnTimer事件中輸入以下代碼:
if Panel1.top>-Panel1.height then
Panel1.top:=Panel1.top-1
else
Panel1.top:=frmAbout1.height-35;
{判斷Panel1是否移動(dòng)到了窗體的最上端,如果不是,就向上移動(dòng)一個(gè)像素點(diǎn)的位置;如果是的話,就將Panel1移動(dòng)到窗體的最下端,循環(huán)顯示字幕}
5.在窗體上放置一個(gè)Button控件,將其Caption屬性設(shè)為“確定”,并在OnClick事件中輸入以下代碼:
close;{關(guān)閉窗體}
三、改進(jìn)分析
以上是一個(gè)簡(jiǎn)單的滾動(dòng)字幕的實(shí)現(xiàn)過(guò)程,但還有一個(gè)地方需要進(jìn)一步完善:如果窗體使用了圖片作為背景的話,Panel控件會(huì)遮擋住部分背景圖案。其實(shí)要解決這個(gè)問(wèn)題,我們完全可以不使用Panel控件,而是直接將Label控件放置在窗體上,并將Label控件的Transparent(透明)屬性值設(shè)為T(mén)rue,然后通過(guò)Timer控件直接控制這些Label控件的移動(dòng)。限于篇幅,在這里筆者就不再具體敘述了