?? 014.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基礎(chǔ)教程-->第五章 Delphi圖形圖像編程(一)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基礎(chǔ)教程 第五章 Delphi圖形圖像編程(一)">
<META NAME="description" CONTENT=" - DELPHI基礎(chǔ)教程 - 第五章 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 background="bg.gif" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%" background="bg.gif"><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" background="bg.gif" 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">中,專門定義了一組對象和部件用以繪制圖形,完成一些簡單的圖像功能。利用這些對象、部件的方法,可以方便地繪制各種常用圖形;通過設(shè)置它們的屬性,能得到不同風(fēng)格的圖形。另外,通過對鼠標(biāo)事件的定義,可以方便的設(shè)計圖形繪制程序。</p>
<p> 本章將介紹以下內(nèi)容:</p>
<p> </font>1. TCanvas,TPen,TBrush,TColor<font face="宋體" lang="ZH-CN">對象的方法及屬性;</p>
<p> </font>2. <font face="宋體" lang="ZH-CN">繪圖功能的實(shí)現(xiàn);</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">是一個簡單的圖形圖像應(yīng)用程序,是對以上這些對象和組件的具體應(yīng)用。本章將結(jié)合此程序進(jìn)行講述。 </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">對象是一個用于繪圖的表面,在這個區(qū)域上,程序可實(shí)現(xiàn)各種繪圖功能,很多部件</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">對象,它們用于定義繪制圖形的風(fēng)格。關(guān)于</font>TBrush,TPen<font
face="宋體" lang="ZH-CN">對象,下節(jié)中將詳細(xì)介紹。</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">有對象很多方法,可完成常用的繪圖功能,現(xiàn)將方法及功能簡介如表</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">兩點(diǎn)所確定的橢圓所決</font></p>
<p><font face="宋體" lang="ZH-CN">定。弧的起點(diǎn)是橢圓圓周和橢圓中心與</font>(x3,y3)<font
face="宋體" lang="ZH-CN">連線的交點(diǎn)。弧矩形終點(diǎn)是橢</font></p>
<p><font face="宋體" lang="ZH-CN">圓圓周和橢圓中心與</font>(x4,y4)<font
face="宋體" lang="ZH-CN">連線的交點(diǎn),以逆時針方向畫弧。</font></p>
<p>Chord Chord(x1,y1,x2,yx,x3,y3,x4,y4 : Integer);</p>
<p>Chord<font face="宋體" lang="ZH-CN">方法連接橢圓上的兩點(diǎn),橢圓由</font>(x1,y1),(x2,y3)
<font face="宋體" lang="ZH-CN">兩點(diǎn)所確定的矩形決</font></p>
<p><font face="宋體" lang="ZH-CN">定,</font>(x3,y3)<font face="宋體" lang="ZH-CN">是始點(diǎn),</font>(x4,y4)<font
face="宋體" lang="ZH-CN">是終點(diǎn)。</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">方法把位圖的一部分復(fù)制到畫布的某個矩形區(qū)域,并用畫筆的當(dāng)前顏色替換位圖的顏色。參數(shù)Dest定義畫布的一個矩形區(qū)域,該矩形用以填充位圖,Bitmap定義位圖;Source定義位圖中的矩形區(qū)域,該區(qū)域上的位圖</p>
<p> 將被復(fù)制;</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">此方法從另一個畫布對象上復(fù)制部分圖像到該畫布。</font>Canvas<font
face="宋體" lang="ZH-CN">表示源畫布,</font>Source<font face="宋體" lang="ZH-CN">是源畫布上要復(fù)制的圖像區(qū)域。</font>Dest<font
face="宋體" lang="ZH-CN">表示目標(biāo)畫布上將接受復(fù)制</font></p>
<p><font face="宋體" lang="ZH-CN">圖像的矩形區(qū)域。</font></p>
<p>Draw Draw(x,y : Integer;Graphic : TGraphic)<font face="宋體" lang="ZH-CN">;</p>
<p> 此方法在畫布給定的象素點(diǎn)坐標(biāo)</font>(x,y)<font
face="宋體" lang="ZH-CN">處畫</font>Graphic<font face="宋體" lang="ZH-CN">所給的圖像,該圖像可以是位圖</font>,<font
face="宋體" lang="ZH-CN">圖標(biāo)或元位圖。</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">是矩形左上角的象素坐標(biāo),x2,y2是矩形右下角的象素坐標(biāo)。如果矩形形成一個區(qū)域,將出現(xiàn)一個橢圓。</p>
</font><p>LineTo LineTo(x,y : Integer);</p>
<p>LineTo<font face="宋體" lang="ZH-CN">從當(dāng)前位置畫一條線至</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">將筆的當(dāng)前位置設(shè)置到點(diǎn)</font>(x,y)<font
face="宋體" lang="ZH-CN">處,筆的當(dāng)前位置在</font>PenPos<font face="宋體"
lang="ZH-CN">屬性中,</font></p>
<p><font face="宋體" lang="ZH-CN">改變筆的當(dāng)前位置使用</font>MoveTo<font
face="宋體" lang="ZH-CN">方法,不要設(shè)法改變</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">方法繪制橢圓的一部分,橢圓由點(diǎn)</font>(x1,y1),(x2,y2)<font
face="宋體" lang="ZH-CN">所指定的矩形所決定,制的那部分由橢圓中心到(x3,y3),(x4,y4)兩點(diǎn)的兩條輻射線所決定。</p>
</font><p>Polygon Polygon(Points : array of TPrint);</p>
<p>Polygon<font face="宋體" lang="ZH-CN">方法在畫布上繪制一系列的點(diǎn),各點(diǎn)依次連成線,最后將首尾兩點(diǎn)相接形成一個區(qū)域,并用當(dāng)前筆刷填充此區(qū)域。</p>
</font><p>Polyline Polyline(Ports : array of TPort);</p>
<p>Polyline<font face="宋體" lang="ZH-CN">方法在畫布上用當(dāng)前畫筆繪制一系列的點(diǎn),各點(diǎn)依次連成線。</font></p>
<p>StretchDraw StretchDraw(Const Rect : TRcct : Graphic : TGraphic);</p>
<p><font face="宋體" lang="ZH-CN">此方法在</font>Rect<font face="宋體"
lang="ZH-CN">參數(shù)指定的矩形內(nèi)畫一圖像。圖像延伸改變大小以適應(yīng)矩形。</font></p>
<p>Rectangle Rectangle(X1,y1,x2,y2 : Integer);</p>
<p>Rectangle<font face="宋體" lang="ZH-CN">方法在畫布上用當(dāng)前畫刷繪制矩形,</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">此方法繪制一矩形以指示此矩形獲得焦點(diǎn)。此方法是異或</font>(XOR)<font
face="宋體" lang="ZH-CN">函數(shù),第二次調(diào)用時原有矩形將消失。DrawFocuseRect繪制的矩形不能滾動。要實(shí)現(xiàn)滾動功能則先調(diào)用此方法使矩形消失,待滾動過后重新繪制。</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
</font><p>5.1.2 Tpen Object(<font face="宋體" lang="ZH-CN">畫筆對象</font>) </p>
<p><font face="宋體" lang="ZH-CN">
應(yīng)用程序常用</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">畫由點(diǎn)組成的線段</p>
<p> </font>PsDashDot <font face="宋體" lang="ZH-CN">畫點(diǎn)劃線</p>
<p> </font>PsClear <font face="宋體" lang="ZH-CN">畫雙點(diǎn)劃線</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">屬性定義線段的顏色。可結(jié)合當(dāng)前的顏色、屏幕顏色或它們反轉(zhuǎn)值,對線段的顏色重新定義,但不改變</font>Color<font
face="宋體" lang="ZH-CN">屬性。詳見表</font>5.3<font face="宋體" lang="ZH-CN">。 </p>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -