delphi中实现控件的深度投影及阴影效果.doc_第1页
delphi中实现控件的深度投影及阴影效果.doc_第2页
delphi中实现控件的深度投影及阴影效果.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

delphi中实现控件的深度投影和阴影效果在WINDOWS应用程序的窗口及其窗口内的按钮等控件,其本身都具有立体感效果,特别是在WINDOWS95系统下DELPHI程序设计中,立体效果更加完善,程序界面尤如真实物体的存在。尽管如此,它还是不能完全满足所有场合的程序设计需要,比如你要使一个控件具有一个阴影效果,或者使一个控件显示出深度投影效果,就必须依靠其它程序设计手段。这里有一个可利用的CANVAS类,它可以轻松的完成这些特殊效果程序界面的绘制工作。CANVAS(画布)是DELPHI中为某些控件所定义的一个类,它允许在控件表面进行灵活的绘图操作或信息显示,并且适用于多种控件,如FROM、IMAGE、FILELISTBOX等,为美化程序界面提供了非常方便的方法;CANVAS具有多种属性并支持多种操作命令,可以实现在指定的对象上画点、画线、画多边形、画扇形、画圆、定义画笔特性、输出各种字符串等多种功能。控件的阴影及投影效果的形成,基本原理就是在利用该控件的父控件比如FORM或者其它容器控件的CANVAS,在该控件的周围适当处填加图像,通过线条及颜色的合理搭配,使控件与周围的图像融为一体,形成特殊的视觉效果。所需要的CANVAS命令如下:form1canvaspenwidth:定义画笔的宽度form1canvaspencolor:定义画笔的颜色form1canvasmoveto:定义画线起点坐标form1canvaslineto:定义画线终点坐标具体操作时需要根据被修饰控件的TOP、LEFT、WIDTH、HEIGHT属性,确定需要画线的起点和终点坐标,这样操作无论被修饰控件位置及尺寸如何变化,都可以保证投影及阴影效果完美的实现。下面是一个简单的演示程序,在窗体中安放三个命令按钮控件Button1、Button2、Button3,然后输入下面PAS文件中的相应代码,程序运行之后按下命令按钮2,则为按钮1增加投影效果,按下命令按钮3为按钮1增加阴影效果,按下按钮1则程序结束。上述方法可灵活应用在DELPHI程序界面设计之中,实现一些屏幕特技效果,会极大增强程序工作界面的生动性。其中有一点需要注意,当程序窗口发生变化时(最大化或最小化),其投影及阴影效果可能会被破坏,此时需要重画以保证程序界面的完整性,所以在程序中应该适当安排窗口变化监视功能。程序在486机、WINDOWS95中文版、DELPHI20环境下调试通过,附PAS文件内容。unit can;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=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 Privatedeclarationspublic Publicdeclarationsend;varForm1:TForm1;x,y,i:integer;implementationRDFM投影效果的形成procedure TForm1Button2Click(Sender:TObject);beginform1canvaspenwidth:=1;for i=0 to 8 dobeginform1canvaspencolor:=00a0a0a0;form1canvasmoveto(Button1leftButton1widthx,Button1topy);form1canvaslineto(Button1leftButton1widthx,Button1topbutton1heighty);form1canvaspencolor:=00606060;form1canvasmoveto(Button1leftx,Button1topButton1heighty);form1canvaslineto(Button1leftButton1widthx,Button1topbutton1heighty);x:=x1;y:=y1;end;end;阴影效果的形成procedureTForm1Button3Click(Sender:TObject);beginx:=0;y:=0;form1canvaspenwidth:=1;for i:=0 to 8 dobegin form1canvaspencolor:=00404040;form1canvasmoveto(Button1leftButton1widthx,Button1top8);form1canvaslineto(Button1leftButton1widthx,Button1topbutton1height8);form1canvasmoveto(Button1left8,Button1topButton1heighty);form1canvaslineto(Button1leftButton1width8,Button1topbutton1heighty);x:=x1;y:=y1;end;end;退出程序procedure TForm1Button1Click(Sender:TObject);beginclose; end;初始化代码procedure

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论