|
在应用程序中引入图片淡入淡出效果,可以让用户界面更加美观。在Delphi中可以调用Windows的API函数AlphaBlend来实现图片的淡入淡出效果,既保证速度,又很简单。
![]()
向窗体上添加一个TImage组件和一个TButton组件,TImage充当图片显示的载体, TButton组件用于控制淡入效果和淡出效果的转换。添加组件后的窗体如图2-18所示。

图2-18 添加组件后的窗体
![]()
程序首先定义一个TBitmap类型的全局对象Bitmap,在程序运行过程中,由这个全局对象存储图像文件,在窗体的初始化过程中添加初始化Bitmap对象的代码如下:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('鸟.bmp');
end;
在程序运行过程中,如果用户单击第1次单击TButton组件,那么它显示文本就会从“淡入”改变为“淡出”。再次单击这个TButton组件,那显示文本又会回到“淡入”。依次类推,单击“淡入”按钮就会实现图像的淡入效果,响应代码如下:
procedure TfrmMain.Button1Click(Sender: TObject);
var
sBlendFunction: BlendFunction;
i: byte;
begin
if Button1.Caption='淡入' then
begin
Button1.Caption:='淡出';
with sBlendFunction do
begin
BlendOp := AC_SRC_OVER;
BlendFlags := 0;
AlphaFormat := 0
end;
for i := 0 to 51 do
begin
sBlendFunction.SourceConstantAlpha:= i * 5;
Windows.AlphaBlend(Image1.Canvas.Handle,0,0,Image1.Width,
Image1.Height,Bitmap.Canvas.Handle,0,0,
Bitmap.Width,Bitmap.Height,sBlendFunction);
sleep(50);
Image1.Refresh;
end;
end
else
begin
//图片的淡出效果,此处省略了
end;
end;
程序首先会填充一个BlendFunction结构,这个结构是AlphaBlend的使用中最重要的参数。它有4个变量,其中BlendOP是混合方式,当前只有AC_SRC_OVER一种。BlendFlags必须为0。SourceConstantAlpha控制画面的透明度,为0时,完全透明;为255时,完全不透明,并且逐渐变化。AlphaFormat为AlphaBlend函数中源句柄和目的句柄的格式,一般指定为0。然后程序就会调用循环中的AlphaBlend函数来设置TImage组件上显示图像的透明度,并且利用Sleep函数做延时效果。最后在每次循环中都要加入TImage组件的Refresh方法来刷新淡入的效果。
图像的淡出效果与淡入效果的原理大体相同,不再赘述。
| 网游盗号木马实现手记 | 01-09 |
| 黑色技术蠕虫下载者[完整源码] | 11-01 |
| 利用BCB自己打造QQ炸弹 | 10-23 |
| 从内存中加载并启动一个exe(delp | 09-27 |
| 开启和关闭Windows xp 防火墙(de | 09-27 |
| 让你的程序通过XP防火墙(delphi编 | 09-27 |
| 如何让你的程序安全通过windows防 | 08-20 |
| 如何透过程序来控制 Windows (XP | 08-20 |
| 动易2005-2006算号器的源代码 | 08-11 |
| API对注册表进行操作(Delphi编程 | 07-30 |
| 一段隐藏注册表项的代码 | 07-26 |
| 了解VB编写病毒的大体方法 | 07-02 |