收藏 分销(赏)

delphi中实现控件的深度投影及阴影效果.doc

上传人:xrp****65 文档编号:7023746 上传时间:2024-12-25 格式:DOC 页数:3 大小:32KB
下载 相关 举报
delphi中实现控件的深度投影及阴影效果.doc_第1页
第1页 / 共3页
delphi中实现控件的深度投影及阴影效果.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
delphi中实现控件的深度投影和阴影效果 在WINDOWS应用程序的窗口及其窗口内的按钮等控件,其本身都具有立体感效果,特别是在WINDOWS95系统下DELPHI程序设计中,立体效果更加完善,程序界面尤如真实物 体的存在。尽管如此,它还是不能完全满足所有场合的程序设计需要,比如你要使一个控件具有一个阴影效果,或者使一个控件显示出深度投影效果,就必须依靠其它程序设计手段。这里有一个可利用的CANVAS类,它可以轻松的完成这些特殊效果程序界面的绘制工作。   CANVAS(画布)是DELPHI中为某些控件所定义的一个类,它允许在控件表面进行灵活的绘图操作或信息显示,并且适用于多种控件,如FROM、IMAGE、FILELISTBOX等 ,为美化程序界面提供了非常方便的方法;CANVAS具有多种属性并支持多种操作命令,可以实现在指定的对象上画点、画线、画多边形、画扇形、画圆、定义画笔特性、输出各种字符串等多种功能。控件的阴影及投影效果的形成,基本原理就是在利用该控件的父控件比如FORM或者其它容器控件的CANVAS,在该控件的周围适当处填加图像,通过线条及颜色的合理搭配,使控件与周围的图像融为一体,形成特殊的视觉效果。所需要的CANVAS命令如下:   form1.canvas.pen.width:定义画笔的宽度   form1.canvas.pen.color:定义画笔的颜色   form1.canvas.moveto:定义画线起点坐标   form1.canvas.lineto:定义画线终点坐标   具体操作时需要根据被修饰控件的TOP、LEFT、WIDTH、HEIGHT属性,确定需要画线的起点和终点坐标,这样操作无论被修饰控件位置及尺寸如何变化,都可以保证投影及阴影效果完美的实现。   下面是一个简单的演示程序,在窗体中安放三个命令按钮控件Button1、Button2、Button3,然后输入下面.PAS文件中的相应代码,程序运行之后按下命令按钮2,则为按钮1增加投影效果,按下命令按钮3为按钮1增加阴影效果,按下按钮1则程序结束。上述方法可灵活应用在DELPHI程序界面设计之中,实现一些屏幕特技效果,会极大增强程序工作界面的生动性。其中有一点需要注意,当程序窗口发生变化时(最大化或最小化),其投影及阴影效果可能会被破坏,此时需要重画以保证程序界面的完整性,所以在程序中应该适当安排窗口变化监视功能。   程序在486机、WINDOWS95中文版、DELPHI2.0环境下调试通过,附.PAS文件内容。   unit can;   interface   uses   Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;   type   TForm1=class(TForm)   Button1:TButton;Button2:TButton;Button3:TButton;   procedure Button2Click(Sender:TObject);   procedure Button3Click(Sender:TObject);   procedure Button1Click(Sender:TObject);   procedure FormCreate(Sender:TObject);   private        {Privatedeclarations}   public        {Publicdeclarations}   end;   var   Form1:TForm1;   x,y,i:integer;   implementation   {$R*.DFM}   {投影效果的形成}   procedure TForm1.Button2Click(Sender:TObject);   begin   form1.canvas.pen.width:=1;   for i=0 to 8 do   begin   form1.canvas.pen.color:=$00a0a0a0;   form1.canvas.moveto(Button1.left+Button1.width+x,Button1.top+y);   form1.canvas.lineto(Button1.left+Button1.width+x,Button1.top+button1.height+y);   form1.canvas.pen.color:=$00606060;   form1.canvas.moveto(Button1.left+x,Button1.top+Button1.height+y);   form1.canvas.lineto(Button1.left+Button1.width+x,Button1.top+button1.height+y);   x:=x+1;y:=y+1;   end; end;   {阴影效果的形成}   procedureTForm1.Button3Click(Sender:TObject);   beginx:=0;y:=0;   form1.canvas.pen.width:=1;   for  i:=0 to 8 do   begin         form1.canvas.pen.color:=$00404040;   form1.canvas.moveto(Button1.left+Button1.width+x,Button1.top+8);   form1.canvas.lineto(Button1.left+Button1.width+x,Button1.top+button1.height+8);   form1.canvas.moveto(Button1.left+8,Button1.top+Button1.height+y);   form1.canvas.lineto(Button1.left+Button1.width+8,Button1.top+button1.height+y);   x:=x+1;y:=y+1;   end; end;   {退出程序}   procedure TForm1.Button1Click(Sender:TObject);   begin   close;        end;   {初始化代码}   procedure TForm1.FormCreate(Sender:TObject);   begin   Button1.caption:='Exit';   Button2.caption:='投影';   Button3.caption:='阴影';   end;   end… delphi中实现控件的深度投影和阴影效果
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服