来。在这种动画中,栅栏的角色由STATICTEXT类型的对象来充当(画面呈现几条栅栏就需要几个STATICTEXT对象)。只需改变STATICTEXT类型对象的LEFT 和 WIDTH属性即可(LEFT逐渐变大,WIDTH逐渐变小),在TIMER1的ONCLICK事件上,对每一个STATICTEXT对象如下处理:
if st1.width >0 then //ST1是STACTICTEXT类型的一个对象
begin
st1.width:=st1.width-2;
st1.left:=st1.left+1 ;
end
else
//再一次循环
begin
st1.width:=40; //WIDTH和LEFT由实际情况决定
st1.left:=40;
end;
---- 如果把上面的栅栏水平排列,把LEFT改成TOP,把WIDTH改成HEIGHT,则成为百页窗的效果,大家有兴趣的话可以试试。
---- 四. 翻页
---- 这是一种旋转的效果,实际上是把TOP的值固定,改变HEIGHT的值,并把STRETCH的值设为TRUE。在TIMER1的ONTIME事件中键入以下
程序可以实现向上翻页:
if dbimage1.height >0 then
dbimage1.height:=dbimage1.height-4;
---- 若把上面程序中的HEIGHT的属性值从小变到大,则实现向下翻页的效果。若把TOP改成LEFT,把HEIGHT改成WIDTH,则实现左右翻页的效果。如果把LEFT和WIDTH一起同时改变,则可以使图片以的某一条通过
图片的竖直线为轴进行旋转,在TIMER1的ONTIMER事件中,
程序如下:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if state=1 then
if dbimage1.width >0 then
begin
//画面逐渐变小
dbimage1.left:=dbimage1.left+1;
dbimage1.width:=dbimage1.width-2;
//width的改变值必须是left改变值的两倍
end
else
state:=2
else
if dbimage1.width< 250 then
begin
dbimage1.left:=dbimage1.left-1;
dbimage1.width:=dbimage1.width+2;
end
else
state:=1
end;
---- 从以上
程序可以看出,这是把画面变小后再慢慢变大,变小是一个状态(STATE=1),变在是另一个状态(STATE=2),这两种状态交替出