知识大全 DELPHI中利用对象的常用属性制作动画

Posted 属性

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 DELPHI中利用对象的常用属性制作动画相关的知识,希望对你有一定的参考价值。

DELPHI中利用对象的常用属性制作动画  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

  一. 拉幕

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

    if (dbimage left > ) then         begin            dbimage left:=dbimage left ;           dbimage width:=DBImage width+ ;           //dbimage width的改变值必须是dbimage left改变值的 倍         end      else           timer enabled:=false;//拉幕结束   把上面程序中的LEFT改为TOP WIDTH改为HEIGHT就可以实现竖直方向的拉幕 如果把拉幕这种效果运用于文本类型的对象 就可以实现一行一行地显示文本的效果

  二. 手风琴

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

procedure TForm Timer Timer(Sender: TObject);begin   if state=   then      if (dbimage left > ) then         begin           dbimage left:=dbimage left ;           dbimage width:=DBImage width+ ;         end       else          //当幕完全拉开后 改变状态变量         state:=    else    //从两边往中间拉       if  dbimage left< form width  div then        begin           dbimage left:=dbimage left+ ;           dbimage width:=dbimage width ;        end        else           //当幕合上后 改变状态变量           state:= ;end;  三. 栅栏式

  画面初始被竖直栅栏遮住 然后各条栅栏逐渐变窄 被栅栏分割的画面逐渐完整起来 在这种动画中 栅栏的角色由STATICTEXT类型的对象来充当(画面呈现几条栅栏就需要几个STATICTEXT对象) 只需改变STATICTEXT类型对象的LEFT 和 WIDTH属性即可(LEFT逐渐变大 WIDTH逐渐变小) 在TIMER 的ONCLICK事件上 对每一个STATICTEXT对象如下处理

      if  st width >   then //ST 是STACTICTEXT类型的一个对象        begin         st width:=st width ;         st left:=st left+ ;        end      else        //再一次循环         begin          st width:= ;  //WIDTH和LEFT由实际情况决定          st left:= ;         end;       如果把上面的栅栏水平排列 把LEFT改成TOP 把WIDTH改成HEIGHT 则成为百页窗的效果 大家有兴趣的话可以试试

  四. 翻页

  这是一种旋转的效果 实际上是把TOP的值固定 改变HEIGHT的值 并把STRETCH的值设为TRUE 在TIMER 的ONTIME事件中键入以下程序可以实现向上翻页

    if  dbimage height >   then            dbimage height:=dbimage height   若把上面程序中的HEIGHT的属性值从小变到大 则实现向下翻页的效果 若把TOP改成LEFT 把HEIGHT改成WIDTH 则实现左右翻页的效果 如果把LEFT和WIDTH一起同时改变 则可以使图片以的某一条通过图片的竖直线为轴进行旋转 在TIMER 的ONTIMER事件中 程序如下

procedure TForm Timer Timer(Sender: TObject);begin  if state=     then     if dbimage width >   then        begin        //画面逐渐变小        dbimage left:=dbimage left+ ;        dbimage width:=dbimage width ;        //width的改变值必须是left改变值的两倍        end     else        state:=   else     if dbimage width<   then        begin          dbimage left:=dbimage left ;          dbimage width:=dbimage width+ ;        end     else       state:=

end;  从以上程序可以看出 这是把画面变小后再慢慢变大 变小是一个状态(STATE= ) 变在是另一个状态(STATE= ) 这两种状态交替出现 即可出现动画

  五. 从画面外逐渐移(飞)过

  在设计封面的时候 经常需要把某标题从某个画面上飞过 要实现该类型的动画实际上只需改变标题的TOP(垂直方向飞过)或LEFT属性(水平方向飞过)

  例如实现一个标题在一幅画上从左往右飞过 先在FORM 里建立一个图形对象DBIMAGE 和文字对象STATICTEXT (注意TEXT类型的对象无法显示在图片上) 把位置和大小大小尺寸设好 然后在FORM 里建立一个TIME对象TIME 把其ENABLED属性设为TRUE INTERVAL属性设为 并在事件ONTIME里键入如下语句

    procedure TForm Timer Timer(Sender: TObject);begin   if statictext left< dbimage width+dbimage left  then     statictext left:=statictext left+    else     statictext left:=dbimage left;     //当标题飞出图片后 使标题重新位于图片的左边       再一次从左向右入屏幕end;  说明 如果只想使标题从左向右移动一次 ELSE语句改为Timer enabled:=false; 数值 是标题移动的速度值 可以随意更改 若标题只移到图片的某一位置 则把 statictext left< dbimage width+dbimage left 改为 statictext left< 位置值 并把ELSE语句改为Timer enabled:=false; 只需把LEFT的值从大变到小 则实现从右往左飞过 把上面的LEFT改为TOP 把WIDTH改为HEIGHT 即可实现垂直方向的动画   六. 逐渐显示(即把图片从某一个边界逐渐拉出来)

  实现这一类型的动画不但要改变TOP LEFT属性 还要改变HEIGHT和WIDTH属性 例 把一幅画从右边往左边拉(右切入) 在上例中以DBIMAGE 为例 这时要把Dbimage 的center和stretch属性设为FALSE 图片的左边界放在FORM 的右边界处 WIDTH设为

cha138/Article/program/Delphi/201311/25078

相关参考

知识大全 利用Visual C# 2005制作简单动画效果

利用VisualC#2005制作简单动画效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一般的W

知识大全 Delphi中动画设计[2]

Delphi中动画设计[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  imagepictu

知识大全 Delphi中动画设计[3]

Delphi中动画设计[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Delphi中动画设计[1]

Delphi中动画设计[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 用Delphi编制趣味动画鼠标

用Delphi编制趣味动画鼠标  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们经常可以看到许

知识大全 javascript检测对象中是否存在某个属性判断方法

  检测对象中属性的存在与否可以通过几种方法来判断  使用in关键字  该方法可以判断对象的自有属性和继承来的属性是否存在  代码如下:  varo=x:;  "x"ino;//true自有属性存在 

知识大全 Java中对象按照属性排序

Java中对象按照属性排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  项目中经常需要用到比如

知识大全 Delphi中制作特效菜单

特效处理:Delphi中制作特效菜单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!菜单是应用程序中

知识大全 Delphi中对象解除技巧

Delphi中对象解除技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Delphi程序设计

知识大全 浅析JSP开发中的对象和范围属性

浅析JSP开发中的对象和范围属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在JSP页面中的对象