上一篇 | 下一篇

DELPHI中利用对象的常用属性制作动画

发布: 2008-6-26 17:34 | 作者: admin | 来源: | 查看: 4次

DELPHI中利用对象的常用属性制作动画

北京邮电大学福建分校

林颖

---- 在DELPHI中的所有对象中都有提供了TOP、LEFT、HEIGHT、WIDTH四个属性,用以控制对象的位置和大小;另外在DELPHI中还提供了一个TIME的构件,利用他们可以方便地实现一些动画。

---- 一. 拉幕

----

拉幕式即从中间往两边慢慢显示画面。在此把Dbimage1的CENTER属性设成true;把stretch属性设成false。把WIDTH属性设成0,适当设置LEFT的值,使其显示在屏幕中间。实现动画主要方法是修改LEFT属性(值逐渐变小)和WIDTH属性(值逐渐变大),要注意的是为了让幕布从中间均匀地向两边拉开,WIDTH的改变值必须是LEFT改变值的两倍。在DIMEER1的ontime事件中输入如下语句:

if (dbimage1.left >0) then

begin

dbimage1.left:=dbimage1.left-1;

dbimage1.width:=DBImage1.width+2;

//dbimage1.width的改变值必须是dbimage1.left改变值的2倍

end

else

timer1.enabled:=false;//拉幕结束。

---- 把上面程序中的LEFT改为TOP,WIDTH改为HEIGHT就可以实现竖直方向的拉幕。如果把拉幕这种效果运用于文本类型的对象,就可以实现一行一行地显示文本的效果。

---- 二. 手风琴

----

在拉幕式的动画中,当画面整个显示后,再把画面从两边往中间慢慢遮住,如此不断循环,象拉手风琴一样。实现时,需加入一个变量STATE,用以表明此时的状态。具体程序如下:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if state=1 then

if (dbimage1.left >0) then

begin

dbimage1.left:=dbimage1.left-1;

dbimage1.width:=DBImage1.width+2;

end

else

//当幕完全拉开后,改变状态变量

state:=2

else

//从两边往中间拉

if dbimage1.left< form1.width div 2 then

begin

dbimage1.left:=dbimage1.left+1;

dbimage1.width:=dbimage1.width-2;

end

else

//当幕合上后,改变状态变量

state:=1;

end;

---- 三. 栅栏

字号: | 推荐给好友

评分:0

我来说两句

网络推荐