
你先把窗体AlphaBlend属性设置为真.再把它的AlphaBlendValue值设为0
在窗体上拖一个 Timer1计时器控件,把它的Enabled设置为false
然后在它的Timer1Timer 事件中写代码
procedure TForm1.Timer1Timer(Sender: TObject)
var
i:integer
begin
for i:=0 to 10000000 do
begin
if i mod 1000 =0 then
begin
Form1.AlphaBlend :=true
if Form1.AlphaBlendValue<255 then
Form1.AlphaBlendValue:= Form1.AlphaBlendValue+1
end
end
end
再在窗体的FormShow事件中
procedure TForm1.FormShow(Sender: TObject)
begin
Timer1.Enabled:=true
end
运行程序,OK,到手了
现在就试试吧,赶快给分洛
首先,这个效果是要系统支持,也就是WIN7或VISTA(不会拼……),并且开打了Aero,也就是你其他程序的窗体可以半透明。然后,可以调用DWM API来实现,这个网上有很多,就不多说了。
另外,也可以直接下载别人写好的库,这样就好了。
另外说下,就是窗体背景的问题,上面这个效果,是通过渐变透明通道实现,如果是普通BMP图的话,由于其没有透明通道(24位图),所以不会显出透明的,可以用PNG图。当然画刷没有这个问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)