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