Delphi 画布对象 Canvas
Delphi具有图形、图像处理能力,可在组件或窗体中绘制各种图形。
Canvas 是TCanvas类的一个系统定义对象,称为画布对象,通常作为其他组件的一个属性出现,不会被单独使用。每一个TControl的派生类都有Canvas的属性。例如Form的Canvas属性可在窗体的客户区域绘图。由于Canvas是运行时的属性,在程序执行时才能获得,所以必须通过编写程序来完成设置。canvas的主要属性有Pen(画笔)、Brush(画刷)、pixels(像素)、penpos(画笔的位置)等,用于定义绘制图形的风格。
(一)pen画笔
用于控制线条的颜色、模式、样式及宽度,分别对应Color、mode、style及width属性。
(1)Color属性:控制线条的颜色。
(2)Mode属性:控制线条的绘制模式,为TPenMode类型,是美剧类型,共有16种取值范围,
其中常用的9中定义如下:
pmblack //黑色
pmwhite // 白色
pmNop //不改变
pmnot //画布背景的相反色
pmcopy //用color属性指定的画笔颜色
pmnotcopy //画笔颜色的相反颜色
pmmerge // 画笔颜色与画布背景的和成色
pmxor //画笔颜色与画布背景色的异域合成色
pmnotxor //pmxor的相反颜色
x线条绘制的模式与背景颜色关系很大,特别是在动画的制作过程中。
(3)Style属性:控制线条的样式,如实线、虚线、点划线等等,为TPenStyle类型,是枚举类型,共有7种取值范围。
PsSolid //实线
PsDash //短划线
PsDot //点线
PsDashDot //点划线
PsDashDotDot //双点划线
PsClear //看不见的线段
PsInsideFrame //画便捷的矩形线框
(4)Width属性:控制线条的宽度,如
self.canvas.pen.width := SpinEdit1.Value;
(二)Brush画刷
属性有Color、Style;
(1)color 是控制填充的颜色。
(2)style 控制图形的填充样式,主要有实填充、左斜线、右斜线、交叉线、水平线和垂直线等;
BsSolid //单色
BsClear //透明,无填充颜色
BsHorizontal //水平线
BsVertical //垂直线
BsFDiagonal //向前的对角线
BsBDiagonal //向后的对角线
BsCross //水平和垂直相对线
BsDiagCross //交叉对角线
(三)pixels像素
读取或设置像素的颜色,主要用法 canvas.pixels(x,y),返回的类型是TColor类型;
(四)PenPos画笔的位置
画笔的当前位置,类型为Tpoint类型。如:
x := form1.canvas.penpos.x;
y := form1.canvas.penpos.y;