用两种方法快速简单的实现窗口淡入淡出[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 srw 的 blog


二、alphablend属性结合timer组件:
     (一)原理:
          在delphi6.0以上(6.0以下我不了解),每个窗体有alphablend属性和alphablendvalue
          属性,将alphablend属性设为true,然后在timer组件中随着时间改变alphablendvalue的
          值(0-255)即可。
     (二)程序实例:
          新建一个工程,并添加一个窗体form2,将其alphablend属性设置为true;在窗体form1上添
          加一个按钮button1,caption属性设为“淡入”,在form2上添加一个按钮button1,caption
          属性设为“淡出”;另外,在form2上添加两个timer组件timer1、timer2,将它们的interval
          属性设为3(越大动画时间越长),enable设为false;接下来添加如下4段代码:
         1、双击form1上的button1,在其“oncreate”事件中添加:


form2.alphablendvalue:=1;//窗体从透明开始
            form2.show;              //显示窗体form2
            form2.bringtofront;      //将窗体form2移到前端
            form2.timer1.enabled:=true;  //启动timer1,控制窗体可见度-增加


         2、双击form2上的button1,在其“oncreate”事件中添加:
            timer2.enabled:=true;       //启动timer2,控制窗体可见度-减少
         3、双击form2上的timer1,在其“ontimer”事件中添加:


            form2.alphablendvalue:=form2.alphablendvalue+1;//增加可见度
            timer2.enabled:=false;        //停止timer2
            //如果可见度达到最大,停止timer1
            if form2.alphablendvalue=255 then  
timer1.enabled:=false;

            form2.alphablendvalue:=form2.alphablendvalue+1;//增加可见度
            timer2.enabled:=false;        //停止timer2
            //如果可见度达到最大,停止timer1
            if form2.alphablendvalue=255 then  
timer1.enabled:=false;


         4、双击form2上的timer2,在其“ontimer”事件中添加:


form2.alphablendvalue:=form2.alphablendvalue-1;//减少可见度
            timer1.enabled:=false;        //停止timer1
            //如果可见度达到最小,停止timer2
            if form2.alphablendvalue=0 then
begin  
  timer2.enabled:=false;
  form2.close;
end;

本文关键:用两种方法快速简单的实现窗口淡入淡出
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top