亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

TCanvas

2019-09-06 23:33:25
字體:
供稿:網(wǎng)友

                   

TCanvas為作圖對象提供一個抽象的畫布。

類關(guān)系 TObject->TPersistent
  對那些作圖對象,可使用TCanvas對象作為畫布。標(biāo)準(zhǔn)的window控件,例如編輯控件和列表框控件,當(dāng)它們被Windows畫出來時,并不需要一塊畫布。在創(chuàng)建一幅圖像時,TCanvas對象提供有用的屬性、方法和事件,主要通過以下方法:
  指定需要使用的刷子、畫筆和字體類型。
  對各類形狀和線條進(jìn)行作圖和填充。
  輸入文體。
  對圖像進(jìn)行著色。
  對當(dāng)前圖像的變化能作出反應(yīng)。
  TCanvas有兩個子類,即TControlCanvas和TMetafileCanvas,它們對控件圖像的作圖和創(chuàng)建對象的圖元文件圖像有所幫助。

屬性列表
Brush 決定畫布填充圖形的背景顏色和填充圖案的模式
ClipRect 指定剪貼矩形的邊界
CopyMode 確定如何將復(fù)制的圖像放到畫布上面
Font 指定使用文體的字體
Handle 是針對畫布的Windows GDI句柄
LockCount 表示畫布被鎖定的次數(shù)
Pen 指定使用的畫筆種類
PenPos 指定畫筆當(dāng)前的作圖位置
Pixels 指定當(dāng)前ClipRect中點(diǎn)的顏色

方法列表
~TCanvas 釋放TCanvas占用的內(nèi)存
Arc 在圖片上畫出一段弧線
BrushCopy 制位圖的一部分到位于畫布上的矩形中
Chord 畫一個由一條直線和一個橢圓相交所的的閉合圖形
CopyRect 將另一畫布上圖形的一部分復(fù)制到這個畫布上
Draw 在畫布上輸出由Graphic參數(shù)指定的圖像
DrawFocusRect 畫一個矩形框表示矩形內(nèi)的控件對象具有輸入焦點(diǎn)
Ellipse 在畫布上畫橢圓
FillRect 使用當(dāng)前刷子填充畫布上指定的矩形
FloodFill 使用當(dāng)前刷子填充畫布上的一塊區(qū)域
FraneRect 畫出一個矩形的邊框
LineTo 在畫布上畫一條從當(dāng)前畫筆位置到指定點(diǎn)(x, y)的直線
Lock 使其他線條不在畫布上畫出
MoveTo 使當(dāng)前作圖位置移到點(diǎn)(x, y)
Pie 在畫布上畫一個扇形
PolyBezier 畫一簇Bezier曲線
PolyBezierTo 畫一簇Bezier曲線并更新PenPos的值
Polygon 在畫布上畫出閉合圖形
Polyine 在畫布上畫出一系列鏈接點(diǎn)數(shù)組中的每一個點(diǎn)的直線
Rectangle 在畫布上畫出一個矩形
Refresh 從設(shè)備場境里刪除 Pen、Brush 以及 Font
RoundRect 在畫布上畫出一園角的矩形
StretchDraw 畫出由 raphic 參數(shù)指定的圖像
TCanvas 創(chuàng)建一介 TCanvas 對象的實(shí)例
TextExtent 返回字符串的像素寬度和高度
TextHeight 返回字符串的像素高度
TextOut 在畫布上從點(diǎn)(x,y)處開始輸出一字符串
TextRect 在剪切矩形區(qū)內(nèi)輸出字符串
TextWidth 返回字符串的像素寬度
TryLock 調(diào)用TryLock 將鎖定畫布
Unlock 使LockCount 屬性值減少

事件列表
OnChange 當(dāng)畫布上的圖像剛發(fā)生變化時OnChange事件發(fā)生
OnChanging 當(dāng)畫布上的圖像剛發(fā)生變化時OnChanging事件發(fā)生

屬性
TCanvas::Brush
  決定畫布填充圖形的背景顏色和填充圖案模式。
 __property TBrush* Brush = { read =FBrush, write =SetBrush };
  通過設(shè)置 Brush屬性的屬性,指定作圖背景顏色和填充圖案的模式。Brush 屬性值為TBrush 對象。當(dāng)在畫布上填充一個空間時,通過設(shè)置TBrush 對象的屬性,可以指定可以使用的顏色、模式或者位圖。
  注意:設(shè)置Brush 屬性是為分配指定的TBrush 對象,而不是替代當(dāng)前的 TBrush 對象。

TCanvas:::ClipRect
  指定剪貼矩形的邊界。
 __property Windows:::TRect ClipRect = {read =GetClipRect };
  使用ClipRect權(quán)屬性用來限定畫布的作圖區(qū)域。任何坐標(biāo)在ClipRect 屬性以外的作圖將被剪切掉并且不會出現(xiàn)在圖像中,例如,在一個較小的框中畫一個大圓的一部分,首先畫框,然后對由框的內(nèi)邊界限定的矩形進(jìn)行ClipRect屬性設(shè)置 。此時,畫整個圓將顯示在框內(nèi)部分。
當(dāng)處理窗體的OnPaint 事件時,畫布的ClipRect 屬性被設(shè)置成所需著色的矩形。不與ClipRect 重疊的圖像部分,不必畫出。因此,OnPaint 例程能夠使用 ClipRect 屬性的數(shù)值,對著色進(jìn)行優(yōu)化,并加速應(yīng)用軟件的全面運(yùn)行。

TCanvas::CopyMode
  確定如何將復(fù)制的圖像放到畫布上面。
 __property int Copy Mide = {read = FCopyMode, write = FCopyMode, default = 13369376 };
  設(shè)置copyMode屬性,可以改變畫出的圖像到畫布上面的路徑。當(dāng)使用CpyReet 方法從另外的畫布上復(fù)制圖像時,使用CopyMode屬性。當(dāng)TBitmap 對象畫它們自身到一個畫布上時,CopyNode屬性還被TBitmap對象使用。
  下表給出了CopyMode屬性可能的取值,并對每一取值進(jìn)行了描述。
取值 說 明
cmBlackness 用黑色填充畫布的矩形目標(biāo)
cmDstInvert 忽略源圖,將畫布上的圖像反轉(zhuǎn)
cmMergeCopy 將畫布上的圖像與源位圖進(jìn)行AND操作
cmMergePaint 將畫布上的圖像與反轉(zhuǎn)的源位圖進(jìn)行OR操作
cmNotSrcCopy 復(fù)制反轉(zhuǎn)的源位圖與畫布
cmNotSrcErsae 將畫布上的圖像與源位圖進(jìn)行OR操作,然后再反轉(zhuǎn)
cmPatCopy 復(fù)制源式樣至畫布
cmPatInvert 將畫布上的圖像與源式樣進(jìn)行XOR操作
cmPatPaint 使用OR操作使反轉(zhuǎn)的源位圖與源式樣結(jié)合,并將操作結(jié)果與畫布上的圖像進(jìn)行OR操作
cmSsrcAnd 將畫布上的圖像與源位圖進(jìn)行AND操作
cmSrcCopy 復(fù)制源位圖至畫布
cmSrcErase 將畫布上的圖像進(jìn)行反轉(zhuǎn),然后將其與源位圖進(jìn)行XOR操作
cmSrcInvert 將畫布上的圖像與源位圖進(jìn)行OR操作
cmWhiteness 用白色填充畫布上的矩形目標(biāo)

TCanvas::Font
  當(dāng)在圖像上寫的文本時,使用Font屬性指定使用文本的字體
 __property TFont* Font = { read = FFont, write = SetFont } ;
  對圖像上的文本,使用Font屬性可以指定使用文本的字體。Font 屬性的數(shù)值是TRont 對象。設(shè)置TFont對象的屬性,可以指定使用字體的外觀、顏色、大小以及風(fēng)格等。
  注意:僅對指定TFont對象的 Font 屬性進(jìn)行指定,而不是替代當(dāng)前的TFont對象。

TCanvas::HandIe
  是針對畫布的Windows GDI句柄。
 __property HDC HandIe = { read = GetHandIe write = SetHandIe ,nodefauIt } ;
  對于卷入畫布的設(shè)備場境,必須設(shè)置HDC 的Handle 屬性。當(dāng)窗口控件對Windows 著色信息進(jìn)行響應(yīng)時,繪圖所需的HDC 即轉(zhuǎn)化為PrtDeviceContext 方法 。在其他情況下,通過調(diào)用控件的GetDeviceContext方法,也能獲得HDC。此外,對打印機(jī)或者存儲器,Windows 還提供了能夠獲得HDC的API調(diào)用方法。
  讀Handle 屬性可以對由使用需要設(shè)備場境句柄的進(jìn)行API調(diào)用的TCanvas 對象提供繪圖設(shè)備進(jìn)行補(bǔ)充。絕大多數(shù)的Windows GDI調(diào)用,需要HDC。
  TCancas對象沒有自己的HDC。應(yīng)用軟件必須建立一個HDC,并對Handle 屬性進(jìn)行設(shè)置。當(dāng)畫布不再需要時,應(yīng)用軟件應(yīng)釋放HDC。對已有效一個有HDC畫布,進(jìn)行Handle屬性進(jìn)行設(shè)置時,將不能自動釋放初始的HDC。
  注意:TCanvas 對象的一些字體,如TControlCanvas , 有其自己的HDC。不要為這些對象設(shè)置Handle屬性。它們使用并釋放自己的Handle屬性。

TCanvas::LocKcount
  表示畫布被鎖定的次數(shù),以避免與其他線條相沖突。
 __properrty int LockCount = {read = FLockCount,nodefault }:
  讀LockCount屬性可以查明畫布是否被鎖定。每當(dāng)調(diào)用Lock方法防止畫布與其他線條相沖突時,LockCount屬性增加。調(diào)用Unlock方法時,LockCount 屬性減少。當(dāng)LockCount屬性為0時,其他線條可以在畫布上畫出。

TCanvas::Pen
  指定畫布為畫線和畫圖形輪廓而使用的畫筆種類。
 __property TPen * Pen + {read = FPen, write =SetPen };
  在一幅圖像中,設(shè)置Pen 屬性可指定畫線和畫圖形輪廓而使用的畫筆種類。Pen屬性的數(shù)值是TPen對象。設(shè)置TPeb對象的屬性,可以指定畫筆的顏色、風(fēng)格、寬度以及樣式等。
  注意:僅對指定TPen 對象的Pen屬性進(jìn)行設(shè)置,而不是替代當(dāng)前的TPen對象。

TCanvas::PenPos
  用來指定畫筆當(dāng)前的作圖位置。
 __property tag POINT penPos = {read = GetPenPos , write = SetPos },
  讀 PernPos 可以知道畫筆當(dāng)前的傻圖位置。它是用 LineTo 方法作圖的起始點(diǎn)位置。設(shè)置 PenPos 屬性相當(dāng)于調(diào)用 MoveTo 方法 。

TCanvas::Pixels
  指定當(dāng)前 ClipRect是中點(diǎn)顏色。
 __property TColor Tixels [ int Y ] = { read = Get Pixel , write = SetPixe } ';
  讀取Tixels 讀屬性可以知道位于具體像素位置的畫面顏色。寫Pixels屬性可以改變畫面上某個特定像素的顏色。使用Pixels 屬性可以細(xì)化圖像效果。Pixels 屬性還可以用于確定被FillRect方法使用的顏色。
  不是每一個設(shè)備場境都支持Pixels屬性。這樣的設(shè)備場境,讀出的Pixels屬性返回值為--- 1。則對這樣的設(shè)備場境進(jìn)行Pixels 屬性設(shè)置是沒有用的。
  注意: Pixels屬性僅對位于當(dāng)前Cliprect 數(shù)值內(nèi)的像素有效。

方法
TCanvas::~TCanvas
  刪除一個TCanvas的實(shí)例。
 __fastcall virtual ~ TCanvas(void);
  在應(yīng)用程序中,不要直接調(diào)用~TCanvas,而應(yīng)調(diào)用delete。
  ~TCanvas首先釋放為Font、Brush和Pen屬性創(chuàng)建的TFont、TBrush和TPen對象。然后再釋放TCanvas對象的內(nèi)存。

TCanvas::Arc
  沿由指定矩形確定的橢圓的邊,可以在圖片上畫出一段孤線。
 void __fastcall Arc{int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4};
  使用Arc過程,用當(dāng)前畫筆畫一個橢圓形曲線?;【€橫跨以點(diǎn)(x1, y1)和點(diǎn)(x2, y2)為邊界的橢圓邊。根據(jù)橢圓形周長,按照逆時針方向,從起始點(diǎn)至結(jié)束點(diǎn)畫出弧線。起始點(diǎn)為橢圓中心和點(diǎn)(x3, y3)確定的直線與橢圓的交點(diǎn)。結(jié)束點(diǎn)為橢圓中心和點(diǎn)(x4, y4)確定的直線與橢圓的交點(diǎn)。注意:在Windows95中,x1+x2的和,以及y1+y2的和,不能超出32768。而且,x1+x2+y1+y2的和也不能超出32768。在Windows NT中,使用Windows API調(diào)用SetrcDirection方法,畫弧線的方向可以改變?yōu)轫槙r針方向。

TCanvas::BrushCopy
  復(fù)制位圖的一部分到位于畫布上的矩形中,并且用畫布刷子的顏色替代圖像的顏色。
 void__fastcall BrushCopy(const Windows::TRect & Dest, TBitmap * Bitmap, const Windows::TRect & Source, Tcolor color);
  使用BrushCopy可以獲得諸如使復(fù)制圖片部分透明這樣的特殊效果。BrushCopy過程具有向后兼容性能。使用TImageList方法可以替代BrushCopy過程。為了使運(yùn)用BrushCopy過程復(fù)制出來的圖片具有部分透明效果,應(yīng)當(dāng)指定畫布表面的顏色(如clBackground)作為Brush屬性的Color參數(shù),然后調(diào)用BrushCopy過程。

TCanvas::Chord
  畫一個由一條直線和一個橢圓相交,所構(gòu)成的閉合圖形。
 void__fastcall Chord (int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
  使用Chord可以創(chuàng)建一個由弧形及鏈接弧形兩個端點(diǎn)的直線所構(gòu)成 的圖形。弦是橢圓以點(diǎn)(x1,y1)和點(diǎn)(x2,y2)為邊界的一部分。橢圓被點(diǎn)(x3,y3)和點(diǎn)(x4,y4)之間的一條直線分割成兩部分。
  弦的邊從點(diǎn)(x3,y3)開始,按逆時針方向沿橢圓運(yùn)行到點(diǎn)(x4,y4),最后一直回到點(diǎn)(x3,y3).如果點(diǎn)(x3,y3)和點(diǎn)(x4,y4),不在橢圓表面上,相應(yīng)的弦的拐點(diǎn),取在橢圓邊上截?cái)嘀本€最接近的點(diǎn)。使用Pen屬性數(shù)值可以畫出弦的輪廓,使用Brush屬性數(shù)值可以對圖形進(jìn)行填充。在Windows95中,x1+x2的和,以及y1+y2的和,不能超出32 768。而且,x1+x2+y1+y2的和也不能超出32 768。在Windows NT中,使用Windows API調(diào)用SetArcDirection方法,畫弦的方向可以改變?yōu)轫槙r針方向。

TCanvas::CopyRect
  將另一個畫布上圖形的一部分復(fù)制到這個畫布上。
 void__fastcall CopyRect (const Windows::TRect& Dest, TCanvas* Canvas, const Windows::TRect & Source);
  使用CopyRect過程,可以將另一個畫布上圖形的一部分,轉(zhuǎn)移到TCanvas對象的圖片上。Dest參數(shù),指定了將要復(fù)制的源圖形存放在畫布上的矩形區(qū)域。Canvas參數(shù)指定與源圖像相關(guān)的畫布。Source參數(shù)指定將要復(fù)制的源畫布部分的矩形區(qū)域。源畫布部分,通過使用CopyMode方法的指定模式來進(jìn)行復(fù)制。

TCanvas::Draw
  在給出的坐標(biāo)(X,Y)位置處,Draw在畫布上輸出由Graphic參數(shù)指定的圖像。
 void __fastcall Draw(int X, int Y, TGraphic* Graphic);
  調(diào)用Draw可以在畫布上畫出一個圖像。Draw調(diào)用圖形的Draw方法。圖片輸出到一個圖形大小確定、左上角位于點(diǎn)(X,Y)處的矩形區(qū)域。
  圖像可以是點(diǎn)位圖、圖標(biāo)或者圖元文件。如果圖像是一個Bitmap對象,點(diǎn)位圖通過使用CopyMode方法的數(shù)值輸出。

TCanvas::DrawFocusRect
  畫一個矩形框,通常用于表示矩形內(nèi)的控件對象具有輸入焦點(diǎn)。
 void __fastcall DrawFocusRect( const Windows::TRect &Rect ) ;
  當(dāng)控件獲得或失去輸入焦點(diǎn)時,調(diào)用DrawFocusRect可以畫出控件圖片的邊框。因?yàn)镈rawFocusRect使用XOR功能,因此,當(dāng)?shù)诙握{(diào)用drawFocusRect時,相同的矩形框?qū)钠聊簧舷А?br/>  使用DrawFocusRect 畫了出的矩形框,為能進(jìn)行滾動。為了滾動由DrawFocusRect 畫出的包含矩形框的區(qū)域,首先調(diào)用DrawFocusRect ,從屏幕上移去矩形框,滾動該區(qū)域,然后再調(diào)用drawFocusRect , 在新位置上畫出矩形框。

TCamvas::Ellipse
  在畫布上的矩形范圍內(nèi)畫橢圓。
void __fastcall Ellipse (int X1,int Y1,int X2,int Y2 );
  調(diào)用Ellipse過程,可以在畫布畫圓或者橢圓。矩形范圍的左上點(diǎn)位于像素坐標(biāo)(x1,y1).矩形范圍的右下點(diǎn)位于像素坐標(biāo) (x2,y2).。如果矩形窗體有所有點(diǎn)構(gòu)成一個正方形,則將畫出圓形。使用Pen屬性的數(shù)值,可以畫出橢圓輪廓;作用Brush屬性的數(shù)值,可以對橢圓進(jìn)行填充。
  注意: 在Windows95中,x1 + x2 的和,以及 y1 +y2 的和,不能超出32768。而且,x1 +x2 +y1 +y2的和也不能超出32768。

TCanvas::fillRect
  使用當(dāng)前刷子填充畫布上指定的矩形。
 void__fastcall Rloodfill (int X, int Y ,TColor Color,TFillStyle FillStylr ) ;
  使用Brush屬性的數(shù)值,調(diào)用FloodFill 過程對可以一個非矩形區(qū)域進(jìn)行填充,被填充區(qū)域的邊界,從點(diǎn)(x,y,) 開始向外擴(kuò)充,直到遇到Color參數(shù)指定的顏色邊界為止。
FillStyle參數(shù),確定了邊界顏色變化類型,用下表進(jìn)行表示。

數(shù)值 說明
fsSurface 填充所有由Color參數(shù)指定的顏色區(qū)域。當(dāng)遇到另一種顏色時停止
fsBorder 填充所有由非Color參數(shù)指定的顏色區(qū)域。當(dāng)遇到Color 參數(shù)指定的顏色邊界時停止

  當(dāng)使用FillStyle參數(shù)為fsSurface的FloodFill過程時,使用Pixels屬性可以獲得位于點(diǎn)( x ,y )處的顏色的確切數(shù)值,類似地,當(dāng)使用FillStyle參數(shù)為faBorder的FloodFill過程時,如果直到邊界上的點(diǎn),則使用Pixels屬性可以獲得邊界顏色的確切數(shù)值。

TCanvas::FrameRect
  使用畫布的Brush屬性,畫出一個矩形的邊框。
 void__fastcall framsRect ( const Windows ::TRect &Rect ) ;
  使用FrameRect可以畫出一個像素寬的矩形區(qū)域有邊界。FrameRect過程對矩形內(nèi)部不用Brush屬性進(jìn)行填充。
  通常,使用Polygon方法畫一條邊線,而不使用Pen方法 。

TCanvas ::LineTo
  在畫布上畫開條從當(dāng)前畫筆位置到指定點(diǎn)(x,y)的直線,并且將畫筆位置設(shè)置為點(diǎn)(x,y)。
 void __fastcall LineTo (int X ,int Y);
  使用LineTo可以畫一條從當(dāng)前畫筆位置到指定點(diǎn)(x,y)的直線,但不包括點(diǎn) (x,y)。 LineTo 將畫筆位置設(shè)置為點(diǎn)(x,y)。

TCanvas::Lock
  可以使其他線條不在畫布上畫出。
 void __ fastcall Lock(void );
  在需要畫多條線條的應(yīng)用程序中,調(diào)用Lock過程可以使其他線條不在畫布上畫出。除非調(diào)用了UnLock方法,否則Lock過程可以使應(yīng)用程序中的所有其他線條不會畫出,嵌套調(diào)用Lock, 使LockCount屬性增加,以致使畫布上進(jìn)行作圖,除非最后一個鎖定被釋放。
  由于Lock可以使所有其他線條不會畫出,因此Lock對執(zhí)行情況具有負(fù)影響,除非存在其他線條可能妨礙再畫布上進(jìn)行作圖,則不要調(diào)用Lock 。

TCanvas::MoveTo
  使用當(dāng)前作圖位置移到點(diǎn)(x,y).
 void __ fastrall MoveTo ( int X , int Y ) ;
  在調(diào)用LineTo之前,使用MoveTo可以對畫筆位置數(shù)值進(jìn)行設(shè)定。調(diào)用MoveTo的作用與設(shè)定畫筆位置屬性的作用相同。

TCamvas::Pie
  用來在畫布上畫一個扇形橢圓的一部分,扇形的邊界為點(diǎn)(x1,y1)和點(diǎn)(x2,y2)確定的矩形的橢圓。
void__fastcall Pie (int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4 );
  使用Pie 可以畫一個扇形。扇形的邊界為點(diǎn)(x1,y1)和點(diǎn)(x2,y2)確定的矩形的橢圓。畫出的橢圓部分由橢圓中心向外輻射的經(jīng)過點(diǎn)(x3,y3)和點(diǎn)(x4,Y4)的兩條直線所確定。
  使用Pen屬性的數(shù)值,可以畫出扇形輪廓;使用Brush 屬性的數(shù)值,可以對扇形進(jìn)行填充。
  注意:在windows95中,x1+x2 的和,以及y1+y2的和,不能超出32 768 。而且,x1+x2+y1+y2的和也不能超過32768。

TCanvas::PolyBezier
  畫一簇Bezier曲線。
 void __fastcall PolyBezier (const tagPOINT* Points,const int Points_Size );
  PolyBezier用于根據(jù) Points參數(shù)指定的控制點(diǎn)畫三次Bezier曲線。其中第一條曲線經(jīng)過第一、第四點(diǎn)。2、3點(diǎn)為控制點(diǎn)。按順序,每條曲線需至少四個點(diǎn);上一曲線的終點(diǎn)為下一曲線的開始點(diǎn),緊接著的兩個點(diǎn)為控制點(diǎn),第四點(diǎn)為終點(diǎn)。畫線時使用當(dāng)前的筆。
  可以使用Sice函數(shù)把點(diǎn)數(shù)組傳給PolyBezierTo方法。例如,把100 個點(diǎn)的前10個點(diǎn)畫成一條Bezier曲線,使用方法如下:
  Canvas::PolyBezier(Slice(PointArray,10));

TPanvas::PolyBezierTo
  畫一簇Bezier曲線并更新PenPos的值。
 void__fastcall PolyBezierPo(const tagPOINT* Points ,const inty Points_Size );
  PolyBezierTo 用于根據(jù) Points 參數(shù)指定的控制點(diǎn)畫三次 Bezier 曲線 。其中第一條曲線經(jīng)過第一、第四點(diǎn),2、3點(diǎn)為控制點(diǎn)。按順序,每條曲線需至少四個點(diǎn);上一曲線的終點(diǎn)為下一曲線的開始點(diǎn),緊接著的兩個點(diǎn)為控制點(diǎn),第四點(diǎn)為終點(diǎn)。畫線時使用當(dāng)前的筆并把 PenPos 更新為最后一個點(diǎn)的值。
  可以使用Slice函數(shù)把點(diǎn)數(shù)組傳給PokybezierTo方法。例如,把100個點(diǎn)的數(shù)組的前10個畫成一條Brzier曲線,使用方法如下:
  Canvas::PolyBezierTo(Slice(PointArray,10));

TCanvas::Polygon
  在畫布上畫出鏈接所有點(diǎn)的一系列直線,并且畫出一條從最后一點(diǎn)到起始點(diǎn)的直線以閉合圖形。
 void __fastcall Polygon( const tagPOINT* Plints const int Points_Size ) ;
  使用Polygon, 通過畫筆可以在畫布上畫出一個閉合的多邊形。畫出完整圖形之后,Polygon 還用Brush屬性的數(shù)值自動填充圖形。當(dāng)需要畫一個多邊形而又不需要填充時,可以調(diào)用Polyline方法,只需要結(jié)尾處第二次指定起始點(diǎn)即可。
  使用Slice函數(shù),可以將點(diǎn)數(shù)組的一部分傳遞給Polygon 方法。例如 ,以100個點(diǎn)的數(shù)組中的開始 10 個點(diǎn)畫出一個多邊形,可以像以下方法使用Slice函數(shù):
Canvas::Polygon::(Slice(PointAeeay,10)。

TCanvas ::Polyline
  以當(dāng)前畫筆在畫布上畫出一系列鏈接點(diǎn)數(shù)組中的每一個點(diǎn)的直線。
 void __fastcall Polyline(const tagPOINT* Points.const int Points_Size ) ;
  使用 Pilyline 可以在畫布上鏈接一系列的點(diǎn)。如果僅有兩個點(diǎn),Polyline僅畫出一條直線。調(diào)用MoveTo 功能,將畫筆位置移到第一個點(diǎn),然后用后面所有的點(diǎn)重復(fù)調(diào)用 LineTo,可以在畫布上畫出與調(diào)用 Pokyline 一樣的圖形。然而,與 LineToi不同的是,Polyine過程不能改變畫筆位置數(shù)值。
  使用Slice函數(shù),可以將點(diǎn)數(shù)組的一部分傳遞給Polyline方法。例如,為了鏈接100個點(diǎn)數(shù)組中的開始10個點(diǎn),可按以下方法使用Slice函數(shù):
  Canvas::Polyine::(Slice(PointArray,10).

TCanvas::Rectangle
  可以在畫布上畫出一個矩形,矩形的左上角為點(diǎn)(x1, y1) ,右下角為點(diǎn)(x2, y2)。
 void__fastcall Rectangle(int X1, int Y1, int X2, int Y2, );
  調(diào)用Rectangle過程,使用畫筆畫出一個矩形,并且用刷子進(jìn)行填充。如要填充一個矩形區(qū)域而又不需用當(dāng)前畫筆畫出邊線時,應(yīng)使用FillRect方法。如果需要沒有填充的矩形區(qū)域輪廓,應(yīng)使用FrameRect方法或者Polygon方法。如果需要畫出一個圓角的矩形,應(yīng)使用RoundRect方法。

TCanvas::Refresh
  從設(shè)備場境里刪除Pen、Brush以及Font。
 void__fastcall Refresh (void);
  調(diào)用Refresh可以使畫布使用的HDC回到缺省狀態(tài)。Refresh不會改變Pen屬性、Brush屬性以及Font屬性的數(shù)值。調(diào)用Refresh后,如果HDC是被作圖方法使用的話,那么任何作圖方法的調(diào)用,將需要為HDC重新選擇Brush、Font或者Pen。

TCanvas::RoundRect
  可以在畫布上畫出一個圓角的矩形。
 void__fastcall RoundRect (int X1, int Y1, int X2, int Y2, int X3, int Y3);
  調(diào)用RoundRect可以使用畫筆畫出一個圓角的矩形,并且用刷子進(jìn)行填充。矩形的邊由點(diǎn)(x1, y1)、點(diǎn)(x2,y1)、點(diǎn)(x2,y2)和點(diǎn)(x1,y2)確定。矩形的角被修剪以形成圓的外觀。畫一個橢圓,使用Ellipse方法。畫一個真正的矩形,使用Rectangle方法。

TCanvas::StretchDraw
  在由Rect參數(shù)指定的矩形區(qū)域內(nèi),畫出由Graphic參數(shù)指定的圖像。
 void __fastcall StretchDraw (const Windows::TRect& Rect, TGraphic* Graphic);
  調(diào)用StretchDraw在畫布上畫出一個圖像,以便使圖像與指定的矩形區(qū)域相適應(yīng)。StretchDraw過程調(diào)用圖像的Draw方法。圖像決定了如何使圖像與矩形區(qū)域相適應(yīng)。這可能包括放大或者縮小比例。為了使圖像能夠按其原先尺寸畫出,應(yīng)使用Draw方法。 圖像可以是點(diǎn)位圖、圖標(biāo)或者位圖文件。如果圖像是TBitmap對象,點(diǎn)位圖使用CopyMode屬性的數(shù)值畫出。

TCanvas::TCanvas
  創(chuàng)建一個TCanvas對象的實(shí)例。
 __fastcall TCanvas(void);
  不要直接調(diào)用TCanvas構(gòu)造函數(shù),用new來實(shí)例化一個TCanvas對象。 TCanvas為TCanvas的實(shí)例分配內(nèi)存,并且為Font、Brush和Pen屬性創(chuàng)建TFont、TBrush和TPen對象。TCanvas還將CopyMode方法初始化為cmSrcCopy。

TCanvas::TextExtent
  返回以當(dāng)前字體表示的字符串的像素寬度和像素高度。
 tagSIZE __fastcall TextExtent(const System::AnsiString Text) ;
  使用TextExtent 可以確定字符串在圖片上占用的空間。在圖片上的諸如線條、框架以及文本的附加線等單元被放在適當(dāng)?shù)奈恢茫匀菁{文本大小。僅檢查文本高度,調(diào)用 TextHeight 方法。僅檢查文本的寬度,調(diào)用TextWidth方法。

TCanvas::TextHeight
  返回以當(dāng)前字體表示的字符串的像素高度。
 int __fastcall TextHeight(const system::AnsiString Text );
  使用TextHeight可以確定字符串在圖片上占用的高度。在圖片上的諸如線條、框架以及文本的附加線等單元被放在適當(dāng)?shù)奈恢茫匀菁{文本的高度。TextHeight 函數(shù)返回與TextExtent(Text )::cy 相同的數(shù)值。

TCanvas::TextOut
  在畫布上從點(diǎn)(x,y)處開始輸出一個字符串,同時將畫筆位置修改為字符串的結(jié)束位置。
 void __fastcsll TextOut( int X, int Y, const System::AnsiString text ) ;
  使用TextOut 可以向畫布上輸出一個字符串。按字體的當(dāng)前數(shù)值輸出字符串。使用 TextExtent 能夠確定出文本在圖片上的占用空間。為了輸出僅與剪切矩形區(qū)域相適應(yīng)的文本,應(yīng)使用權(quán)TextRect 方法 。

TCanvas::TextRect
  在一個剪切矩形區(qū)域內(nèi)輸出一個字符串。
 void __fastcall TextRect(const Windows::TEect& Rect,int X,int Y,const System::AnsiString Text);
  使用TextRect可以在一個限制的矩形區(qū)域內(nèi)輸出一個字符串。字符串落在由Rect 參數(shù)指定的矩形區(qū)域外的任何部分將被剪切且不顯示。文本的左上角位于點(diǎn)(X,Y) 。

TCanvas::TextWidth
  返回以當(dāng)前字體表示的字符串的像素寬度。
 int __fastcall TextWidth(const system::AnsiString Text);
  使用TExtWidth 可以確定字符串在圖片上占用的長度。TextWidth 函數(shù)表明給出的字符串是否與可用空間相適應(yīng)。在圖片上的諸如線條、框架以及文本有附加線等單元被放在適當(dāng)?shù)奈恢?,以容納文本的寬度,Textwidth返回與TextExtent(Text)::cx相同的數(shù)值。

TCanvas::TryLock(void);
  除非調(diào)用了 UnLock 方法,否則調(diào)用 TryLock 可以避免其他線條在畫布表面上輸出。調(diào)用Lock方法需要配套使用,每調(diào)用一次 Lock 方法必須一后面調(diào)用 UnLock 方法相匹配。如果畫布沒有鎖定,那么對TryLock函數(shù)的調(diào)用僅需與調(diào)用一次UnLock方法相匹配。如果畫布是開啟的,調(diào)用TryLock函數(shù)將鎖守畫布,將LockCount 屬性值設(shè)為1、返回True 值。如果畫布被鎖定,調(diào)用TryLock 函數(shù)不產(chǎn)生任何變化,返回False值。
  在試圖改變畫布之前,調(diào)用 TryLock 函數(shù)可能妨礙由 Lock 和 UnLock 平共處成對調(diào)用方法保護(hù)的其他代碼的執(zhí)行。

TCancas::__fastcall Unlock(void);
  使 LockCount 屬性值減少,并且允許其他線條輸出直至LockCount屬性值為0。
 void __fastcall UnLock(void) ;
  在以調(diào)用 Lock 方法開始的臨界區(qū)的結(jié)尾處調(diào)用 UnLock 過程。每一個對 Lock方法的調(diào)用,必須與調(diào)用 UnLock 方法相匹配。

TCanvas::OnChange
  當(dāng)畫布上的圖像剛發(fā)生變化時,OnChange事件發(fā)生。
 __property Classes::TNotifyEvent OnChange = {read =FOnChange, write = FOnChange };
  每當(dāng)畫布上的圖像發(fā)生變化時,寫OnChange事件處理程序以執(zhí)行特定的行為。應(yīng)用程序調(diào)用TCanvas對象的一個作圖方法時,引起下列變化:
 ?產(chǎn)生一個OnChanging事件。
 ?調(diào)用TCanvas方法,使圖像發(fā)生變化。
 ?產(chǎn)生一個OnChange事件。
  OnChange事件是在圖像產(chǎn)生變化時產(chǎn)生,而不是畫布屬性產(chǎn)生變化時產(chǎn)生。應(yīng)用程序中對Font屬性Brush屬性和Pen屬性的變化,可以通過設(shè)定OnChange事件處理程序以產(chǎn)生相應(yīng)的TFont對象、TBrush 對象和TPen對象。然而,TCanvas對象為這些對象設(shè)定了其自身的OnChange事件處理程序。在指定這些對象的OnChange事件處理程序之前,首先讀出現(xiàn)在的事件處理程序。使用讀出的數(shù)值。從新事件處理程序調(diào)用TCanvas對象的事件處理程序。

TCanvas ::OnChanging
  當(dāng)畫布上的圖像剛要發(fā)生變化時,OnChanging事件發(fā)生。
 __propenty CIasses::TNotifyEvent OnChanging = {read =FOnChanging, write = RonXhanging};
  在畫布上的圖像發(fā)生變化之前,寫OnChanging事件處理程序以執(zhí)行特定的行為。當(dāng)應(yīng)用程序調(diào)用TCanvas對象的一個作圖方法時,引起下列變化:
 ?一個OnChanging事件發(fā)生。
 ?調(diào)用TCanvas方法,使圖像發(fā)生變化。
 ?一個OnChange事件發(fā)生。

上一篇:TBits(單元Classes)

下一篇:TClipboard

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

久久精品国产99久久| 亚洲精品一二| 亚洲国产欧美一区二区三区不卡| 男人天堂99| www.亚洲色图.com| 蜜桃在线一区| 国产激情三区| 亚洲老妇激情| 天堂√中文最新版在线| 久久电影网站中文字幕| 成人女人a毛片在线看| 一个人免费观看视频www在线播放| 色老太综合网| 91精品婷婷国产综合久久蝌蚪| 怡红院视频网站| 四虎国产精品成人免费影视| 中文字幕高清视频| 亚洲第一网站免费视频| 成年人影院在线观看| 韩国主播福利视频一区二区三区| 日韩视频欧美视频| 免费中文字幕视频| 黄色网页在线免费观看| 99久久婷婷这里只有精品| 国产精品久久国产精品| 成人午夜电影久久影院| 日韩视频一区二区三区在线播放免费观看| 最好看的中文字幕| caoporn成人| 亚洲高清免费在线观看| 亚洲熟女乱综合一区二区三区| 成人免费观看www在线| 88久久精品| 亚洲成人黄色小说| 2024国产精品视频| 国产福利在线看| 奇米精品在线| 国产亚洲一区二区在线| 亚洲成人福利| 少妇一级淫免费观看| 国产91欧美| 欧美精品欧美精品系列c| 欧美日韩精品在线| 久久99精品久久久久久水蜜桃| 狠狠色丁香久久综合频道| 久久精品欧美一区二区三区不卡| 最新中文字幕在线观看| 久久综合88中文色鬼| 欧美xxxx黑人又粗又长密月| 国产九色在线| 亚洲日本在线视频观看| 国产成人精品免费看在线播放| 欧美激情在线一区二区| 99视频在线免费观看| 91麻豆文化传媒在线观看| 影音先锋在线播放| 精品国产在天天线2019| 中文字幕国产高清| 国内一区二区三区精品视频| 少妇被躁爽到高潮无码文| 精品无码久久久久久久久| 日产欧产美韩系列久久99| 含羞草激情视频| 色琪琪丁香婷婷综合久久| 阳光姐妹淘韩国版| 无码人妻aⅴ一区二区三区| 色欧美片视频在线观看在线视频| 日韩免费高清在线观看| 成人av资源站| 日本一区二区三区视频在线| 国产有码一区二区| 在线免费激情视频| 成人精品亚洲人成在线| 亚洲人成色777777老人头| 欧美国产一区视频在线观看| 国产成人精品免费一区二区| 中文字幕乱码人妻二区三区| 久久亚洲天堂| gogo久久日韩裸体艺术| 国产精品一区在线观看| 日韩欧美一区二区三区在线观看| 国产免费一区二区三区最新不卡| 亚洲第一成年人网站| 精品成人久久av| 色香蕉成人二区免费| 国产成人精品亚洲日本在线观看| 亚洲国产va精品久久久不卡综合| 日韩一区精品| 国产性生交xxxxx免费| 一区二区三区四区精品在线视频| 亚洲成av人**亚洲成av**| 亚洲天堂影院在线观看| 99精品欧美一区二区蜜桃免费| 天天射夜夜骑| 非洲一级黄色片| 在线播放视频一区| 在线观看视频色| 中国 免费 av| 丁香婷婷综合色啪| 国产成人精品免高潮在线观看| 尤物国产在线观看| www.这里只有精品| 2020国产精品久久精品美国| 亚洲成在人线在线播放| 人妻熟妇乱又伦精品视频| 9久re热视频在线精品| 国产一线二线在线观看| 99thz桃花论族在线播放| 欧美一区二区三区成人片在线| 国产精品美女主播在线观看纯欲| 91美女高潮出水| 天堂网www中文在线| 天天碰免费视频| 中文亚洲视频在线| 老头老太做爰xxx视频| 黄色免费直接看| 欧美日韩国产在线观看| 欧美日韩一级片网站| 老司机午夜性大片| 久久久九九九九| 麻豆精品蜜桃视频网站| 国产精品久久久久久久久久久久久| 在线国产精品视频| 欧美电影精品一区二区| 日韩电影中文 亚洲精品乱码| 欧美精品三区| 国产三级国产精品国产国在线观看| 亚洲欧美在线另类| 婷婷综合在线观看| 欧美激情国产精品日韩| 亚洲无中文字幕| 奶水喷射视频一区| 口述被爽到呻吟高潮自述| 青青草原国产视频| 亚洲午夜久久久久久久国产| 亚洲黄色www网站| 欧美福利第一页| 深夜福利视频在线观看| 国产一区二区精品丝袜| 欧美不卡三区| 黄页网站在线观看免费| 丰满饥渴老女人hd| 欧美丰满老妇| 国产欧美日韩中文字幕在线| 成人超碰在线| 欧美性感美女一区二区| 国产玉足榨精视频在线观看| а√天堂资源官网在线资源| 日韩成人在线免费视频| 999视频在线免费观看| 成人美女av在线直播| 自拍偷拍国产精品| 91导航在线观看| 人人干人人爱人人爱| 久久亚洲精品网站| 亚洲精品久久久久久国| 免费成人深夜夜行网站视频| 久久精品视频18| 亚洲国产日韩欧美在线动漫| 日韩免费高清一区二区| 成人免费毛片东京热| 手机在线观看av网站| 日韩欧美亚洲国产一区| 精品无人区麻豆乱码久久久| 国产精品无码av无码| 中文字幕一区免费在线观看| 香蕉视频国产在线观看| 亚洲人亚洲人色久| 国产免费一区视频观看免费| 在线一区二区三区| 久久精品视频播放| 麻豆短视频在线观看| 日韩精品一区二区三区不卡| 欧美在线一区二区| 欧美日韩你懂的| 日韩高清二区| 欧美日韩另类在线| 亚洲成成品网站| 97在线视频观看| 日本午夜精品视频在线观看| 日韩精品中文字幕在线| 视频国产在线观看| 69av视频在线| 亚洲大片免费观看| 亚洲精选在线视频| 国产精品高潮呻吟久久久久| 久久午夜宅男免费网站| 色天天色综合| 中文字幕亚洲第一| 久草国产精品视频| 午夜精品久久久久影视| 色视频欧美一区二区三区| 中文av一区特黄| 国产亚洲美女精品久久久| 久久久久久久久久久久久久免费看| 日韩一卡二卡三卡| 精品国产区一区| 国产在线超碰| 91蝌蚪porny成人天涯| 99re国产在线播放| 国产综合视频在线| 色综合久久天天| 中文字幕高清在线观看| 欧美高清在线一区二区| 天堂av免费在线观看| 91精品国产吴梦梦| 中国黄色在线视频| 午夜日韩影院| 亚洲理论在线| 亚洲欧美日韩在线一区| wwwxx日本| 国产成人av福利| 丰满熟女一区二区三区| 亚洲福利视频二区| 天天影院图片亚洲| 久久午夜夜伦鲁鲁一区二区| 成人午夜在线观看视频| 国产对白叫床清晰在线播放| 女人帮男人橹视频播放| 啊灬啊灬啊灬啊灬高潮在线看| www.99久久热国产日韩欧美.com| eeuss影院一区二区三区| 夜夜操夜夜操| 成人女性视频| 全程偷拍露脸中年夫妇| 黄色免费观看视频网站| 日韩一级片免费观看| 欧美成人免费全部网站| 色综合天天综合网国产成人网| 国产精品美女久久久久av福利| 日本免费成人网| 黑人巨大精品欧美一区| 免费看黄色aaaaaa 片| 欧美亚洲另类久久综合| 久久精品国产99久久| 国内小视频在线看| 五月婷婷丁香网| 国产美女精品| 性做久久久久久久久| 麻豆一区二区三| 欧美一区二区三区高清视频| 欧美一区二区三区红桃小说| 99re6这里只有精品视频在线观看| 亚洲美免无码中文字幕在线| 欧美成人日韩| 欧美特级黄色片| 欧美成人se01短视频在线看| 国产午夜精品全部视频播放| 亚洲少妇30p| 久久一区二区中文字幕| 国产精品免费久久久| 亚亚洲欧洲精品| 在线播放国产精品二区一二区四区| avove在线播放| 91 com成人网| 欧美a级在线观看| 欧美电影影音先锋| 污软件在线观看| 国产偷国产偷精品高清尤物| 亚洲japanese制服美女| 国产影视一区| 中文字幕自拍偷拍| 亚洲蜜桃精久久久久久久久久久久| 不卡一本毛片| 欧美一卡在线观看| 久久伊人久久| 国产一区二区三区四区在线| 国产精品女人久久久| 日韩精品卡一| 色片在线免费观看| 午夜剧场日韩| 色94色欧美sute亚洲线路一ni| 久久精品日产第一区二区三区| 久久偷看各类wc女厕嘘嘘偷窃| 国产在线视频网址| 精品综合久久久| 欧美xxx在线| 欧美怡春院一区二区三区| 成人avav影音| 久久人妻少妇嫩草av蜜桃| 成人午夜视频免费观看| 成人亚洲欧美一区二区三区| 精品国产99久久久久久宅男i| 国产精品露脸视频| 波多野结衣影院| 99re这里只有精品视频首页| 麻豆网站在线观看| 日韩免费av片在线观看| 激情小说中文字幕| 俺去啦最新地址| 无码人妻精品一区二区蜜桃网站| 四虎国产精品免费久久| 国产精品揄拍500视频| 草草浮力影院| 亚洲综合123| 成人乱码手机视频| 福利地址发布页| 国产一区喷水| 久久在线免费视频| 免费高清在线观看电视| 久久久久国产精品熟女影院| a毛片在线观看| 看全色黄大色黄女片18| 国产麻豆成人精品| 成人网18免费网站在线| 被黑人猛躁10次高潮视频| 国产主播第一页| 日本美女久久久| 2024国产精品视频| av无码av天天av天天爽| 免费在线日本| 免费a级片网站| 日本欧美一区二区三区不卡视频| 国产精品久久久久久久久久齐齐| 91中文字幕在线| 日本视频在线免费| 好色先生视频污| 久久久国产一区二区三区四区小说| 黄瓜视频在线观看| 影音先锋久久久| 337p粉嫩大胆色噜噜噜噜亚洲| 成人国产精品一区二区免费麻豆| 国产黄网站在线观看| 久久久在线免费观看| 国产黄人亚洲片| 亚洲精品三级| 亚洲狠狠婷婷综合久久久久图片| 窝窝九色成人影院|