Delphi实现字幕动画的两点经验

Author: 肖绚 Date: 1997-01-01

  Delphi是当今最流行的Windows程序设计语言之一,不少报刊、杂志已介绍采用计时器加标签来实现字幕动画,即利用计时器的Interval属性每隔一定时间触发事件,让字符串的Left属性值减1或加1,来实现字符串动画效果。举个例子来说,新创建一个Form1,在Form1上放置一个定时器Timer1和一个字符串label1,label1的capture属性值设为“电脑报读者,你好”;Timer1的Interval属性值设为100;Enabled属性值设为true;label1的left属性值设为0。那么双击Timer1来编写Timer1的时间触发事件label1.left:=label1.left+1;再点击运行即可产生“电脑报读者,你好”几个字从Form1的左边向右边移动。但这种动画效果会产生强烈的抖动感,字符一闪一闪的,没有任何实用价值。经过仔细研究,可以从以下二方面改善移动效果。
  1.修改Timer1的时间触发程序为
  label1.left:=label1.left+1;
  Form1.fresh;
  对Form1重新刷新,这样一改后动画效果就没有强烈的抖动感了,只有一点轻微抖动。
  2.在Form1上添加一个Panel1,再把label1移动到Panel1平台上。
  修改Timer1时间触发程序为
  label1.left:=panel1.left+1;
  重新运行该程序,你就会发现“电脑报读者,你好”几个汉字很平稳的在Form1窗体内移动,丝毫没有一点抖动闪烁感。