delphi canvas 属性知识

来源:互联网 发布:淘宝裤子女冬 编辑:程序博客网 时间:2024/06/05 10:03

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;