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