Delphi中如何实现透明按钮

2016-01-29 14:10 155 1 收藏

Delphi中如何实现透明按钮,Delphi中如何实现透明按钮

【 tulaoshi.com - Delphi 】

 
各位亲爱的读者,在delphi编程实战中我们可以使用按钮控件来制作程序中的按钮键。但是在使用其它软件时,我们常常可以看到透明按钮的效果。那么如何在delphi中实现透明按钮的效果?笔者在互联网搜索了不少时间也没有找到这方面的控件,于是决定自己DIY一番,下面笔者就将自己的经验与广大读者共享一番。

  要实现透明按钮,共需要三个控件-image、label、bevel。其中image控件是为了突出透明的效果而放置的(做为背景),label则是显示按键上的字。而bevel则是显示出一个立体框。(通过这个控件可以实现鼠标移到按钮上时显示出凸出的效果)下面我们就来看看具体的步骤吧。

  1、 请先在delphi6.0中建一个工程文件

  2、 请先选择一个图片,并注意其大小。然后将窗体调成与图片一样大小即可。

  3、 然后在窗体上放置一个image控件,将其Align属性调为alclient,这样图片的大小便与窗体的大小一模一样可以做为背景了。然后选择picture属性并点击小按钮,在弹出的窗口中按下load键选择你所要做为背景的图片。

  4、 接着在窗体上再放置一个label控件,合理设置按钮的文字内容及字体大小后。单击Transparent属性这样便将label设为了透明。

  5、 最后在窗体上放置一个bevel控件。将shape属性设为bsBOX,然后将style属性设为bsRaise(这样为突然出效果),visible属性改为false(这样程序在运行时该控件不可见)。

  6、 合理设置label与bevel控件的位置,使得bevel与label控件的位置及位置刚刚好一致,假如您觉得使用鼠标调整位置比较难。可以用Ctrl+箭头来微移控件,用Shift+箭头微调控件的大小。

  下面我们就开始编程吧,请在代码窗口中设置下列事件及语句。

  procedure TForm1.Label1MouseMove(Sender: TObject;
    Shift: TShiftState; X, Y: Integer);
  begin
   Bevel1.visible:=true;
   //使得bevel控件可视
   label1.BringToFront;
   //将label1控件置于最前方以保证onclick事件能执行
  end;

  procedure TForm1.Label1Click(Sender: TObject);
  begin
   //在此加入点击按钮时需要执行的代码即可
  end;

  procedure TForm1.Image1MouseMove(Sender: TObject;
  Shift: TShiftState; X,Y: Integer);
  begin
  Bevel1.visible:=false;
  //当鼠标在image控件移动时,使bevel控件不可视按钮不凸起
  end;

  另外为了保证透明按钮看起来不是很单调您还可以在label控件附近放一个图标,这样可以让使用者看起来更加明了。 

来源:https://www.tulaoshi.com/n/20160129/1492696.html

延伸阅读
  1、打开下图所示的背景素材,选择菜单:滤镜 > 模糊 > 高斯模糊,数值稍微大一点,效果如下图。 2、把前景色设置为绿色,用圆角矩形工具拉一个合适的圆角矩形,然后选择钢笔工具,在属性栏选择“合并形状”,勾出底部三角形形状,如下图。 把当前图层填充改为:0%,此时形状的颜色就消失了,但是你会...
异形按钮非常有趣,就是按钮的形状不是标准的长方形或正方形,而有一丝叛逆异形嘛,是不是?怎样才能实现异形按钮呢?由于Window 95增加了对窗口区域概念的支持,使得窗口区域就是所定义的窗口看上去的形状,窗口区域作为窗口的实际边界区域,这样窗口区域不仅定义了窗口的可画区域,而且定义了窗口下隐含区域和响应鼠标击键事件的响应窗口...
标签: Web开发
在aspx页面中要实现单击一个按钮(服务器端控件)来关闭当前页面,只需要在aspx页面的page_load()方法中加入下列语句: this.btnClose.Attributes.Add("onclick","window.close()");//btnClose是按钮的名字,此语句是给其添加一个单击属性,调用window.close()方法。 2 在html页面中要实现单击一个按钮(html控件)来关闭当前页面,只...
我们在开发一个软件中,通过扫描仪输进了大量实景图片,这些图片是以位图格式存储的,实际需要将这些图片透明放置到多彩色背景上,而在我们所使用的VisualBasicforWindows开发环境中,只能将WMF格式的矢量图(通过Image控件装载)透明放置到多彩色复杂背景图上,对位图只能象照片一样将图片上的每一个点阵信息贴到复杂背景上。本文讨论的问题就...
Delphi中实现界面与业务逻辑的分离                                                &nb...

经验教程

71

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部