在DELPHI为编程者提供了一个灵活的绘图场所,即本文所述的
CANVAS类,在DELPHI中的很多控件都具有此属性,使编程者可以
在这些的控件的表面随心所欲的绘图,这对完善用户界面或者制
作一些屏幕特技都有着非凡的作用,下面举例说明几种特殊屏幕
效果的形成过程。
一、CANVAS必备基本知识:
1.具有CANVAS属性的控件:
TBitmap,TComboBox,TDBComboBox,TDBGrid,TDBListBox,TDirectoryListBox,
TDrawGrid,TFileListBox,TForm,THeaderControl,TImage,TListBox,TOutline,
TPaintBox,TPrinter,TStatusBar,TStringGrid等,
2.CANVAS属性及命令:篇幅所限,省略参数及格式说明,具体请参考文后
程序及DELPHI帮助文件:
canvas.rectangle():画矩形pen.color:定义画笔颜色
roundrect():画圆角矩形pen.width:定义画笔宽度
arc():画弧线(不填充) brush.color:定义填充颜色
chord():画弧线(填充) textout():在固定位置输出字符串
pie:画扇形 textwidth:取字符串高度
polygon():画多边形填充textheight:取字符串宽度
polyline():多点连线(不填充)font.color:指定字体颜色
Pixels():指定固定象素点颜色值font.size:指定字体大小
moveto():指明画线起点 Ellipse():画圆或椭圆
lineto():指明画线终点
3.使用CANVAS注意事项:当窗口进行重画时,画布上的图像将消
失,比如当窗口进行最小化又重新恢复时,就会引起画布上图像
的消失,另外当刚刚运行
程序时,窗口也是属于重新绘制,所以
如果在绘制窗口之前在画布上绘图,弹出窗口后将不能显示出图
像,比如在TForm1.FormCreate()事件中进行画布绘图操作将是
徒劳的,但可以在此事件中进行画布操作的准备工作,比如设置
画笔的颜色和宽度等。
二、CANCAS应用举例:
1.为控件增加阴影或投影效果:基本原理就是在利用该控件的父
控件比如FORM或者其它容器控件的CANVAS,在需要修饰的控件周
围适当处填加图像,通过线条及颜色的合理达配,使控件与周围的
图像融为一体,形成特殊的视觉效果,具体操作时需要根据被修饰
控件的TOP、LEFT、WIDTH、HEIGHT等属性,确定需要画线的起
点和终点坐标,这样操作无论被修饰控件位置及尺寸如何变化,
都可以保证投影及阴影效果完美的实现;比如可在窗口中建立三
个按钮,然后在按钮2和按钮3的CLICK事件中填加如下代码,之
后按下按钮2或按钮3即使按钮1形成投影和阴影效果:
procedure TForm1.Button2Click(Sender:TObject);
var