当前位置:首页>开发>正文

在delphi中button如何实现透明效果 delphi中都有哪些控件有AlphaBlend属性,也就是可透明

2023-06-01 13:59:23 互联网 未知 开发

 在delphi中button如何实现透明效果 delphi中都有哪些控件有AlphaBlend属性,也就是可透明

在delphi中button如何实现透明效果?

button透明效果暂时没发现如何处理
不过可以通过
tlabel控件和tBevel叠加来实现这种效果.

把tlabel控件的transparent设置为真,它就是透明的,Tbevel控件
可以衬托出按钮的边界效果,然后在tlabel控件的onclick事件中写
代码就可以了.

如果 把tbevel控件的 Style属性设置为bsLowered,然后在tlabel控件的onmousemove事件中增加代码:
tbevel1.Style:=bsRaised //tbevel1是和tlable控件重叠的tbevel控件
还可以实现按钮的动态效果

delphi中都有哪些控件有AlphaBlend属性,也就是可透明

c builder/delphi中透明panel及透明窗口的实现方法_delphi教程

可能大多数程序员会问:透明窗口,特别是透明Panel有什么应用价值呢?可别小看它们哦,下面我就来讲讲他们的巨大作用。
(1)透明窗口可以用于软件界面特效。大家可以看到很多软件的窗口出现或退出的时候是渐进或渐出的,而并非象WinArray8那样直接弹出窗口。这就是Win2000下所提供的功能。实现方法很简单:
this->AlphaBlend=true
this->AlphaBlendValue=100
代码中this是窗口的指针,当然你不能在数据模块或是其他类里调用(废话)。代码更改了窗口的属性:AlphaBlend及AlphaBlendValue。AlphaBlend为true时窗口为透明状态,false时为不透明状态;AlphaBlendValue值为整型,可以取0~255的范围,0时为全透明,255时为全不透明,当然中间的值为半透明咯(爽)。而窗口渐进或渐出效果只要先将AlphaBlend设为true,然后在窗口显示或关闭时在一个循环语句中逐渐将AlphaBlendValue值改大或改小,就可以了(别忘了改完AlphaBlendValue后要刷新窗口哦:this->Refresh())。注意,窗口透明后,窗口上面的所有控件将跟随窗口透明。
难道透明在窗口中的应用就如此而已吗?NO!!!还有更精彩的。窗口类还有两个属性:TransparentColor和TransparentColorValue。先将TransparentColor(bool型)设为true,然后再将TransparentColorValue(TColor型)设为你想设为透明的颜色,那么窗口上只要有这种颜色的地方将呈现透明状态。(爽爽爽)配合AlphaBlend及AlphaBlendValue属性,可以做出想不到的特效来。怎么做?不用我再写了吧。
(2)透明Panel的实现方法。TPanel类有一大缺点:只能设置其颜色,要是想在上面放一幅bmp图或要透明的话无法实现;而它也有一大优点:因为他是从TWinControl类继承而来的,所以它的上面可以放其他控件,再就是它可以位于同级控件的上面。最后一句话什么意思?你把一个TPanel控件放到窗口上,再把一个TImage控件也放到窗口上,现在这两个控件的父都是窗口,而这两个控件属于同级关系,将Panel拖到Image上面盖住一部分,你会发现,无论你如何操作都无法用Image盖住Panel,即便你用了bring to front 或set to back命令,如果你将Image换成Panel的话,两个Panel无论谁盖住谁都可以了。这是因为TImage继承自TGraphicControl的缘故。而且凡继承自TGraphicControl的控件上面都不能放其他控件。你还可以发现TPanel类没有TCanvas属性,因此无法在上面画东西。
怎么样实现透明,而且还可以显示背景图的Panel呢?答案就是自己重新做一个Panel出来,限与篇幅,我在这里不写代码,你想要的话,发个E-Mail给我:decsentangle@sohu.com 。然后我再把控件代码发给你(别担心,免费的)。C Builder和Delphi代码都可以。
究竟透明Panel有什么用呢?God save me,用处可大了,例如作为GIS系统中的图层。图层?当然如果你用过Photoshop或Flash的话。首先,透明Panel可以接受控件,那么你可以将点、线、面、图等控件放到它上面,而不是利用TCanvas去画它们,利用OOP(面向对象编程)技术你就可以方便的对他们进行操作,例如用户用鼠标点击一条线的时候,可以利用该线控件的OnMouseClick事件触发它,而如果是用TCanvas画出来的线,你就不得不去确定鼠标点击的坐标是否在这条线上。当然你还可以利用透明Panel代替普通Panel做出很多界面特效来。

delphi 如何使Panel控件透明?

因为我这个控件需要Handle,而TBevel没有,所以不能用。Image与Label的Transparent已经是true了,但背景还是有。sean2000(地宽天高)的办法在普通意义上没有任何问题,但我现在的控件需要在背景图(*.BMP)上拖来拖去,所以它也不能满足要求,我现在可以用创建不规则窗体的方法来得到一个不规则控件,但下面的Label控件的Caption属性需要随时改动,这确实让我伤透了脑筋,其他兄弟有没有更好的办法?

delphi中怎样把radiogroup控件背景设置成透明的?

印象里radioGroup背景不支持透明,比较靠近一点的做法是parentColor设置为true
建议用三方组件,一般都支持透明(transparent),dev、raize的好像都行

delphi 多行文本控件透明,高手进

Memo 或者RichEdit是让软件用户在上面写字的,你把它搞透明了,用户在上面写字,又压在你的背景上,让用户如何辨认呢,你是想把用户的眼睛搞瞎吧,如果说你想在背景上加一些文字的话,这很好办啊,用标签组件嘛.DELPHI的控件各有各的用处,Memo 或者RichEdit可以更换它的背景颜色,但是不能使它透明.因为控件的作者做它目的,就是要它有背景,可以在上面写字.

最新文章