在Delphi中专门定义了一组对象和部件用以绘制图形完成一些简单的图像功能利用这些对象部件的方法可以方便地绘制各种常用图形通过设置它们的属性能得到不同风格的图形另外通过对鼠标事件的定义可以方便的设计图形绘制程序
本章将介绍以下内容
TCanvasTPenTBrushTColor对象的方法及属性
绘图功能的实现
TImageTPictureTBitBtnTBitmap部件的方法及属性
图像观测及处理
Graphexdpr是一个简单的图形图像应用程序是对以上这些对象和组件的具体应用本章将结合此程序进行讲述
图形对象概述
TCanvas Object(画布对象)
TCanvas对象是一个用于绘图的表面在这个区域上程序可实现各种绘图功能很多部件(如TIMageTMemo)的Canvas属性就是TCanvas对象在部件上绘制图形就是在部件的画布上绘制TCanvas的BrushPenFont属性分别是TBrushTPenTFont对象它们用于定义绘制图形的风格关于TBrushTPen对象下节中将详细介绍
画布的笔的位置定义在PenPos属性中可用MoveTo方法来移动笔如果要在画布上输出文本可用Textout方法
TCanvas有对象很多方法可完成常用的绘图功能现将方法及功能简介
Arc Arc(xyxyxyxy : Integer)
Arc方法在椭圆上画一段弧椭圆由(xy)(xy) 两点所确定的椭圆所决定弧的起点是椭圆圆周和椭圆中心与(xy)连线的交点弧矩形终点是椭圆圆周和椭圆中心与(xy)连线的交点以逆时针方向画弧
Chord Chord(xyxyxxyxy : Integer)
Chord方法连接椭圆上的两点椭圆由(xy)(xy) 两点所确定的矩形决定(xy)是始点(xy)是终点
Brushcopy Brushcopy(const Dest : TRect;Bitmap : TBitmap;const Source TRect;Color : TColor)
Brushcopy方法把位图的一部分复制到画布的某个矩形区域并用画笔的当前颜色替换位图的颜色参数Dest定义画布的一个矩形区域该矩形用以填充位图Bitmap定义位图Source定义位图中的矩形区域该区域上的位图将被复制Color定义画笔中用以替换位图的颜色
CopyRect CopyRect(Dest : TRect;Canvas : TCanvas; Source TRect)
此方法从另一个画布对象上复制部分图像到该画布Canvas表示源画布Source是源画布上要复制的图像区域Dest表示目标画布上将接受复制图像的矩形区域
Draw Draw(xy : Integer;Graphic : TGraphic)
此方法在画布给定的象素点坐标(xy)处画Graphic所给的图像该图像可以是位图图标或元位图
Ellips Ellips(xyxy : Integer)
Ellips方法在画布指定的矩形边界上画一个椭圆(xy)是矩形左上角的象素坐标xy是矩形右下角的象素坐标如果矩形形成一个区域将出现一个椭圆
LineTo LineTo(xy : Integer)
LineTo从当前位置画一条线至(xy)所指定的位置并把笔的位置移至(x y)
MoveTo MoveTo(xy : Integer)
MoveTo 将笔的当前位置设置到点(xy)处笔的当前位置在PenPos属性中改变笔的当前位置使用MoveTo方法不要设法改变PenPos的值
Die Die(xyxyxyxy : Longint)
Die方法绘制椭圆的一部分椭圆由点(xy)(xy)所指定的矩形所决定制的那部分由椭圆中心到(xy)(xy)两点的两条辐射线所决定
Polygon Polygon(Points : array of TPrint)
Polygon方法在画布上绘制一系列的点各点依次连成线最后将首尾两点相接形成一个区域并用当前笔刷填充此区域
Polyline Polyline(Ports : array of TPort)
Polyline方法在画布上用当前画笔绘制一系列的点各点依次连成线
StretchDraw StretchDraw(Const Rect : TRcct : Graphic : TGraphic)
此方法在Rect参数指定的矩形内画一图像图像延伸改变大小以适应矩形
Rectangle Rectangle(Xyxy : Integer)
Rectangle方法在画布上用当前画刷绘制矩形(xy)是矩形的左上角(xy)是矩形的右下角
RomlRect RomlRect((xyxyxy : Integer)
DrawFocuseRect
DrawFocusRect(Const Rect : TRect)
此方法绘制一矩形以指示此矩形获得焦点此方法是异或(XOR)函数第二次调用时原有矩形将消失DrawFocuseRect绘制的矩形不能滚动要实现滚动功能则先调用此方法使矩形消失待滚动过后重新绘制
[] [] []