📄 014.htm
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基础教程-->第五章 Delphi图形图像编程(一)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基础教程 第五章 Delphi图形图像编程(一)">
<META NAME="description" CONTENT=" - DELPHI基础教程 - 第五章 Delphi图形图像编程(一)">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%" bgcolor="#e0e0e0"><strong><A HREF="015.htm"><FONT style="FONT-SIZE: 9pt">后一页</font></A><BR>
<A HREF="013.htm"><FONT style="FONT-SIZE: 9pt">前一页</font></A><BR>
<A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目录</font></A><BR>
<A HREF="../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首页</font></A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">第五章 Delphi图形图像编程(一)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p><font face="宋体" lang="ZH-CN"> 在</font>Delphi<font
face="宋体" lang="ZH-CN">中,专门定义了一组对象和部件用以绘制图形,完成一些简单的图像功能。利用这些对象、部件的方法,可以方便地绘制各种常用图形;通过设置它们的属性,能得到不同风格的图形。另外,通过对鼠标事件的定义,可以方便的设计图形绘制程序。</p>
<p> 本章将介绍以下内容:</p>
<p> </font>1. TCanvas,TPen,TBrush,TColor<font face="宋体" lang="ZH-CN">对象的方法及属性;</p>
<p> </font>2. <font face="宋体" lang="ZH-CN">绘图功能的实现;</p>
<p> </font>3. TImage,TPicture,TBitBtn,TBitmap<font face="宋体" lang="ZH-CN">部件的方法及属性;</p>
<p> </font>4. <font face="宋体" lang="ZH-CN">图像观测及处理。</p>
<p> </font>Graphex.dpr<font face="宋体" lang="ZH-CN">是一个简单的图形图像应用程序,是对以上这些对象和组件的具体应用。本章将结合此程序进行讲述。 </p>
</font><p>5.1 <font face="宋体" lang="ZH-CN">图形对象概述 </p>
</font><p>5.1.1 TCanvas Object(<font face="宋体" lang="ZH-CN">画布对象</font>)</p>
<font face="宋体" lang="ZH-CN"><p> </font>TCanvas<font face="宋体" lang="ZH-CN">对象是一个用于绘图的表面,在这个区域上,程序可实现各种绘图功能,很多部件</font>(<font
face="宋体" lang="ZH-CN">如</font>TIMage,TMemo)<font face="宋体" lang="ZH-CN">的</font>Canvas<font
face="宋体" lang="ZH-CN">属性就是</font>TCanvas<font face="宋体" lang="ZH-CN">对象。在部件上绘制图形就是在部件的画布上绘制。</font>TCanvas<font
face="宋体" lang="ZH-CN">的</font>Brush,Pen,Font<font face="宋体" lang="ZH-CN">属性分别是</font>TBrush,TPen,TFont<font
face="宋体" lang="ZH-CN">对象,它们用于定义绘制图形的风格。关于</font>TBrush,TPen<font
face="宋体" lang="ZH-CN">对象,下节中将详细介绍。</p>
<p> 画布的笔的位置定义在</font>PenPos<font face="宋体" lang="ZH-CN">属性中,可用</font>MoveTo<font
face="宋体" lang="ZH-CN">方法来移动笔。如果要在画布上输出文本,可用</font>Textout<font
face="宋体" lang="ZH-CN">方法。</p>
<p> </font>TCanvas<font face="宋体" lang="ZH-CN">有对象很多方法,可完成常用的绘图功能,现将方法及功能简介如表</font>5.1<font
face="宋体" lang="ZH-CN">: </p>
</font><p><font face="宋体" lang="ZH-CN">表</font>5.1 TCanvas<font face="宋体"
lang="ZH-CN">对象的方法</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font></p>
<p><font face="宋体" lang="ZH-CN">方法名称 形式及说明</p>
<p>───────────────────────────────────────</font></p>
<p>Arc Arc(x1,y1,x2,y2,x3,y3,x4,y4 : Integer);</p>
<p>Arc<font face="宋体" lang="ZH-CN">方法在椭圆上画一段弧,椭圆由</font>(x1,y1),(x2,y2)
<font face="宋体" lang="ZH-CN">两点所确定的椭圆所决</font></p>
<p><font face="宋体" lang="ZH-CN">定。弧的起点是椭圆圆周和椭圆中心与</font>(x3,y3)<font
face="宋体" lang="ZH-CN">连线的交点。弧矩形终点是椭</font></p>
<p><font face="宋体" lang="ZH-CN">圆圆周和椭圆中心与</font>(x4,y4)<font
face="宋体" lang="ZH-CN">连线的交点,以逆时针方向画弧。</font></p>
<p>Chord Chord(x1,y1,x2,yx,x3,y3,x4,y4 : Integer);</p>
<p>Chord<font face="宋体" lang="ZH-CN">方法连接椭圆上的两点,椭圆由</font>(x1,y1),(x2,y3)
<font face="宋体" lang="ZH-CN">两点所确定的矩形决</font></p>
<p><font face="宋体" lang="ZH-CN">定,</font>(x3,y3)<font face="宋体" lang="ZH-CN">是始点,</font>(x4,y4)<font
face="宋体" lang="ZH-CN">是终点。</font></p>
<p>Brushcopy Brushcopy(const Dest : TRect;Bitmap : TBitmap;const Source TRect;</p>
<p>Color : TColor);</p>
<p> Brushcopy<font face="宋体"
lang="ZH-CN">方法把位图的一部分复制到画布的某个矩形区域,并用画笔的当前颜色替换位图的颜色。参数Dest定义画布的一个矩形区域,该矩形用以填充位图,Bitmap定义位图;Source定义位图中的矩形区域,该区域上的位图</p>
<p> 将被复制;</font>Color<font face="宋体" lang="ZH-CN">定义画笔中,用以替换位图的颜色。</font></p>
<p>CopyRect CopyRect(Dest : TRect;Canvas : TCanvas; Source TRect);</p>
<p><font face="宋体" lang="ZH-CN">此方法从另一个画布对象上复制部分图像到该画布。</font>Canvas<font
face="宋体" lang="ZH-CN">表示源画布,</font>Source<font face="宋体" lang="ZH-CN">是源画布上要复制的图像区域。</font>Dest<font
face="宋体" lang="ZH-CN">表示目标画布上将接受复制</font></p>
<p><font face="宋体" lang="ZH-CN">图像的矩形区域。</font></p>
<p>Draw Draw(x,y : Integer;Graphic : TGraphic)<font face="宋体" lang="ZH-CN">;</p>
<p> 此方法在画布给定的象素点坐标</font>(x,y)<font
face="宋体" lang="ZH-CN">处画</font>Graphic<font face="宋体" lang="ZH-CN">所给的图像,该图像可以是位图</font>,<font
face="宋体" lang="ZH-CN">图标或元位图。</font></p>
<p>Ellips Ellips(x1,y1,x2,y2 : Integer);</p>
<font face="宋体" lang="ZH-CN"><p> </font>Ellips<font face="宋体"
lang="ZH-CN">方法在画布指定的矩形边界上画一个椭圆,</font>(x1,y1)<font
face="宋体" lang="ZH-CN">是矩形左上角的象素坐标,x2,y2是矩形右下角的象素坐标。如果矩形形成一个区域,将出现一个椭圆。</p>
</font><p>LineTo LineTo(x,y : Integer);</p>
<p>LineTo<font face="宋体" lang="ZH-CN">从当前位置画一条线至</font>(x,y)<font
face="宋体" lang="ZH-CN">所指定的位置,并把笔的位置移至</font>(x ,y)<font
face="宋体" lang="ZH-CN">。</font></p>
<p>MoveTo MoveTo(x,y : Integer);</p>
<p>MoveTo <font face="宋体" lang="ZH-CN">将笔的当前位置设置到点</font>(x,y)<font
face="宋体" lang="ZH-CN">处,笔的当前位置在</font>PenPos<font face="宋体"
lang="ZH-CN">属性中,</font></p>
<p><font face="宋体" lang="ZH-CN">改变笔的当前位置使用</font>MoveTo<font
face="宋体" lang="ZH-CN">方法,不要设法改变</font>PenPos<font face="宋体"
lang="ZH-CN">的值。</font></p>
<p>Die Die(x1,y1,x2,y2,x3,y3,x4,y4 : Longint);</p>
<p>Die<font face="宋体" lang="ZH-CN">方法绘制椭圆的一部分,椭圆由点</font>(x1,y1),(x2,y2)<font
face="宋体" lang="ZH-CN">所指定的矩形所决定,制的那部分由椭圆中心到(x3,y3),(x4,y4)两点的两条辐射线所决定。</p>
</font><p>Polygon Polygon(Points : array of TPrint);</p>
<p>Polygon<font face="宋体" lang="ZH-CN">方法在画布上绘制一系列的点,各点依次连成线,最后将首尾两点相接形成一个区域,并用当前笔刷填充此区域。</p>
</font><p>Polyline Polyline(Ports : array of TPort);</p>
<p>Polyline<font face="宋体" lang="ZH-CN">方法在画布上用当前画笔绘制一系列的点,各点依次连成线。</font></p>
<p>StretchDraw StretchDraw(Const Rect : TRcct : Graphic : TGraphic);</p>
<p><font face="宋体" lang="ZH-CN">此方法在</font>Rect<font face="宋体"
lang="ZH-CN">参数指定的矩形内画一图像。图像延伸改变大小以适应矩形。</font></p>
<p>Rectangle Rectangle(X1,y1,x2,y2 : Integer);</p>
<p>Rectangle<font face="宋体" lang="ZH-CN">方法在画布上用当前画刷绘制矩形,</font>(x1,y1)<font
face="宋体" lang="ZH-CN">是矩形的左上角,</font>(x2,y2)<font face="宋体"
lang="ZH-CN">是矩形的右下角。</font></p>
<p>RomlRect RomlRect((x1,y1,x2,y2,x3,y3, : Integer);</p>
<p>DrawFocuseRect</p>
<p>DrawFocusRect(Const Rect : TRect)</p>
<p><font face="宋体" lang="ZH-CN">此方法绘制一矩形以指示此矩形获得焦点。此方法是异或</font>(XOR)<font
face="宋体" lang="ZH-CN">函数,第二次调用时原有矩形将消失。DrawFocuseRect绘制的矩形不能滚动。要实现滚动功能则先调用此方法使矩形消失,待滚动过后重新绘制。</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
</font><p>5.1.2 Tpen Object(<font face="宋体" lang="ZH-CN">画笔对象</font>) </p>
<p><font face="宋体" lang="ZH-CN">
应用程序常用</font>TPen<font
face="宋体" lang="ZH-CN">对象在画布上绘制各种线段,笔的颜色在</font>Color<font
face="宋体" lang="ZH-CN">属性中定义。线段宽度在</font>Width<font
face="宋体" lang="ZH-CN">属性中定义。</p>
<p> </font>Style<font face="宋体" lang="ZH-CN">属性定义了线段的各种类型,如表</font>5.2<font
face="宋体" lang="ZH-CN">: </p>
</font><p><font face="宋体" lang="ZH-CN">表</font>5.2 Styled<font face="宋体"
lang="ZH-CN">的取值及含义</font></p>
<p><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </font>Style<font face="宋体" lang="ZH-CN"> 含义</font></p>
<p><font face="宋体" lang="ZH-CN">──────────────────────</p>
<p> </font>PSolod <font face="宋体" lang="ZH-CN">画固定线段</p>
<p> </font>PSDash <font face="宋体" lang="ZH-CN">画由下划线组成的线段</p>
<p> </font>PSDot <font face="宋体" lang="ZH-CN">画由点组成的线段</p>
<p> </font>PsDashDot <font face="宋体" lang="ZH-CN">画点划线</p>
<p> </font>PsClear <font face="宋体" lang="ZH-CN">画双点划线</p>
<p> </font>PsClear <font face="宋体" lang="ZH-CN">画看不见的线段</p>
<p> </font>PsInsideFrame <font face="宋体" lang="ZH-CN">画边界的矩形线框</font></p>
<p><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </font>Mode<font face="宋体" lang="ZH-CN">属性定义线段的颜色。可结合当前的颜色、屏幕颜色或它们反转值,对线段的颜色重新定义,但不改变</font>Color<font
face="宋体" lang="ZH-CN">属性。详见表</font>5.3<font face="宋体" lang="ZH-CN">。 </p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -