在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繪制的矩形不能滾動要實現滾動功能則先調用此方法使矩形消失待滾動過後重新繪制
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25247.html