Delphi 的绘图功能Word下载.docx

上传人:b****5 文档编号:17231115 上传时间:2022-11-29 格式:DOCX 页数:50 大小:300.36KB
下载 相关 举报
Delphi 的绘图功能Word下载.docx_第1页
第1页 / 共50页
Delphi 的绘图功能Word下载.docx_第2页
第2页 / 共50页
Delphi 的绘图功能Word下载.docx_第3页
第3页 / 共50页
Delphi 的绘图功能Word下载.docx_第4页
第4页 / 共50页
Delphi 的绘图功能Word下载.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

Delphi 的绘图功能Word下载.docx

《Delphi 的绘图功能Word下载.docx》由会员分享,可在线阅读,更多相关《Delphi 的绘图功能Word下载.docx(50页珍藏版)》请在冰豆网上搜索。

Delphi 的绘图功能Word下载.docx

CopyRect

Draw

DrawFocusRect

Ellipse

FillRect

FloodFill

FrameRect

LineTo

Lock

MoveTo

Pie

Polygon

Polyline

PolyBezier

PolyBezierTo

Rectangle

Refresh

RoundRect

StretchDraw

TextOut

TextRect

Unlock

//函数:

HandleAllocated

TextExtent

TextHeight

TextWidth

TryLock

//属性:

ClipRect

Handle

LockCount

CanvasOrientation

PenPos

Pixels

TextFlags

Brush

CopyMode

Font

Pen

//事件

OnChange

OnChanging

Delphi的绘图功能[2]-入门

绘图需要有纸、画笔、画刷;

Delphi有Canvas、Pen、Brush.

Canvas就是画布,譬如窗体的Canvas属性,就是窗体的画布;

Pen是画笔,可以设置笔色、笔宽等等;

Brush是画刷,可以设置颜色等等.

//举例:

{绘制直线}

procedureTForm1.Button1Click(Sender:

TObject);

begin

Canvas.Pen.Color:

=clRed;

{设置画笔颜色}

Canvas.Pen.Width:

=2;

{设置画笔宽度}

Canvas.MoveTo(10,10);

{直线起点}

Canvas.LineTo(100,100);

{直线终点}

{这里的Canvas是简写,也可以写做:

Self.Canvas或Form1.Canvas}

end;

{矩形填充}

procedureTForm1.Button2Click(Sender:

Canvas.Brush.Color:

=clYellow;

{设置画刷颜色,也就是填充色}

Canvas.FillRect(ClientRect);

{填充窗体客户区}

//效果图:

Delphi的绘图功能[3]-矩形类图形

unitUnit1;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForm1=class(TForm)

Button1:

TButton;

Button2:

Button3:

Button4:

Button5:

procedureFormCreate(Sender:

procedureButton1Click(Sender:

procedureButton2Click(Sender:

procedureButton3Click(Sender:

procedureButton4Click(Sender:

procedureButton5Click(Sender:

end;

var

Form1:

TForm1;

implementation

{$R*.dfm}

btn:

const

y1=10;

y2=80;

{先设置画笔画刷}

procedureTForm1.FormCreate(Sender:

=4;

=clWhite;

{给出左上角和右下角的坐标就可以绘制矩形}

btn:

=TButton(Sender);

Canvas.Rectangle(btn.Left,y1,btn.Left+btn.Width,y2);

{给出一个矩形结构做参数也可以绘制矩形}

R:

TRect;

{定义一个矩形结构}

R:

=Rect(btn.Left,y1,btn.Left+btn.Width,y2);

Canvas.Rectangle(R);

{绘制圆角矩形;

最后两个参数是设置圆角的}

procedureTForm1.Button3Click(Sender:

Canvas.RoundRect(btn.Left,y1,btn.Left+btn.Width,y2,20,20);

{绘制焦点矩形;

它不受画笔的影响;

它的颜色是和画刷的颜色进行某种运算得来的}

procedureTForm1.Button4Click(Sender:

Canvas.DrawFocusRect(R);

{矩形描边,用的不是画笔是画刷}

procedureTForm1.Button5Click(Sender:

Canvas.FrameRect(R);

end.

Delphi的绘图功能[4]-圆弧类图形

{绘制椭圆;

椭圆的参数和矩形是一样的}

Canvas.Ellipse(btn.Left,y1,btn.Left+btn.Width,y2);

{根据矩形结构绘制椭圆}

Canvas.Ellipse(R);

{绘制扇形}

Canvas.Pie(

btn.Left,y1,{矩形区域左上角}

btn.Left+btn.Width,y2,{矩形区域右下角}

btn.Left+btn.Width,y1+(y2-y1)div2,{扇形起点}

btn.Left+btn.Widthdiv2,y1{扇形终点}

);

{绘制弦,参数同上}

Canvas.Chord(

btn.Left,y1,

btn.Left+btn.Width,y2,

btn.Left+btn.Width,y1+(y2-y1)div2,

btn.Left+btn.Widthdiv2,y1

{绘制弧线,参数同上}

Canvas.Arc(

Delphi的绘图功能[5]-获取Canvas对象

在窗体上添加Panel1、PaintBox1和Button1,代码如下:

cvs:

TCanvas;

{PaintBox1就像窗体一样,也有Canvas属性}

PaintBox1.Canvas.Brush.Color:

PaintBox1.Canvas.FillRect(PaintBox1.ClientRect);

{像Panel1这样没有Canvas属性的控件,也可以绕道获取}

cvs:

=TCanvas.Create;

cvs.Handle:

=GetDC(Panel1.Handle);

cvs.Brush.Color:

=clBlue;

cvs.FillRect(Panel1.ClientRect);

cvs.Free;

//执行前后对比图:

Delphi的绘图功能[6]-Polygon、Polyline

{绘制多边形;

它的参数是一个点数组,这里定义了一个常数数组}

pts:

array[0..3]ofTPoint=(

(x:

10;

y:

40),

46;

120),

82;

10)

Canvas.Polygon(pts);

{绘制连续的一组直线;

它的参数也是一个点数组,我只是把上面的平移了一点}

10+82;

46+82;

82+82;

Canvas.Polyline(pts);

Delphi的绘图功能[7]-PolyBezier、PolyBezierTo

{PolyBezier至少需要四个点做参数;

不改变画笔的当前位置}

array[0..3]ofTPoint;

pts[0].X:

=10;

pts[0].Y:

{起点}

pts[1].X:

=60;

pts[1].Y:

{控制点1}

pts[2].X:

pts[2].Y:

=100;

{控制点2}

pts[3].X:

pts[3].Y:

{终点}

Canvas.PolyBezier(pts);

=1;

Canvas.LineTo(ClientWidth,ClientHeight);

{PolyBezierTo最少只需要需要三个点,它把当前位置当作第一点;

会改变画笔的当前位置}

array[1..3]ofTPoint;

{从1开始的,就3个元素}

Canvas.MoveTo(10+82,10);

//pts[0].X:

=60+82;

=10+82;

Canvas.PolyBezierTo(pts);

//绘制多条贝塞尔线时,每条线的终点也是下条线的起点.

{PolyBezier绘制多条线时,需要3*x+1个点}

array[0..6]ofTPoint;

=40;

pts[4].X:

pts[4].Y:

pts[5].X:

=55;

pts[5].Y:

=99;

pts[6].X:

=70;

pts[6].Y:

{PolyBezierTo绘制多条线时,需要3*x个点}

array[1..6]ofTPoint;

=40+82;

=100+82;

=55+82;

=70+82;

Delphi的绘图功能[8]-TextOut、TextWidth、TextHeight

arr:

array[0..3]ofWideString=(

'

白日依山尽'

黄河入海流'

欲穷千里目'

更上一层楼'

a=20;

{横向间隔}

b=20;

{纵向间隔}

s:

string;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1