📄 025.htm
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI专题--用户界面-->DELPHI中利用对象的常用属性制作动画</TITLE>
<META NAME="keywords" CONTENT=" DELPHI专题--用户界面 DELPHI中利用对象的常用属性制作动画">
<META NAME="description" CONTENT=" - DELPHI专题--用户界面 - DELPHI中利用对象的常用属性制作动画">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index1.html">返回</a>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">DELPHI中利用对象的常用属性制作动画</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> 在DELPHI中的所有对象中都有提供了TOP、LEFT、HEIGHT、WIDTH四个属性,用以控制对象的位置和大小;另外在DELPHI中还提供了一个TIME的构件,利用他们可以方便地实现一些动画。
</span></p>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> <b>一. 拉幕</b> </span></p>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
拉幕式即从中间往两边慢慢显示画面。在此把Dbimage1的CENTER属性设成true;把stretch属性设成false。把WIDTH属性设成0,适当设置LEFT的值,使其显示在屏幕中间。实现动画主要方法是修改LEFT属性(值逐渐变小)和WIDTH属性(值逐渐变大),要注意的是为了让幕布从中间均匀地向两边拉开,WIDTH的改变值必须是LEFT改变值的两倍。在DIMEER1的ontime事件中输入如下语句:
</span></p>
<BR>
<pre><span style="font-size: 9pt"> 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;//拉幕结束。</span></pre>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> 把上面程序中的LEFT改为TOP,WIDTH改为HEIGHT就可以实现竖直方向的拉幕。如果把拉幕这种效果运用于文本类型的对象,就可以实现一行一行地显示文本的效果。
</span></p>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> <b>二. 手风琴</b> </span></p>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
在拉幕式的动画中,当画面整个显示后,再把画面从两边往中间慢慢遮住,如此不断循环,象拉手风琴一样。实现时,需加入一个变量STATE,用以表明此时的状态。具体程序如下:
</span></p>
<BR>
<pre><span style="font-size: 9pt">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;</span></pre>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> <b>
<hr color="#EE9B73" size="1" width="94%">
</b></span>
</TD>
</TR>
</table>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -