首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi TCanvas 類成員完整清單:方法、函數、屬性、事件

     編輯:Delphi

TCanvas 公開介面完整參考:42 個方法/函數、11 個屬性、2 個事件

TCanvas 是 Delphi 繪圖核心類,封裝 Windows GDI 提供跨平台一致的繪圖介面。本文整理其所有公開成員,按類型分類,供快速查閱與 API 設計參考。

過程 (Procedures) — 23 個


Arc
BrushCopy
Chord
CopyRect
Draw
DrawFocusRect
Ellipse
FillRect
FloodFill
FrameRect
LineTo
Lock
MoveTo
Pie
Polygon
Polyline
PolyBezier
PolyBezierTo
Rectangle
Refresh
RoundRect
StretchDraw
TextOut
TextRect
Unlock

函數 (Functions) — 5 個


HandleAllocated  // 返回 Canvas.Handle 是否有效
TextExtent       // 返回文字範圍 TSize (寬高)
TextHeight       // 返回文字高度 (含行距)
TextWidth        // 返回文字寬度
TryLock          // 嘗試鎖定 Canvas,非阻塞

屬性 — 11 個

事件 — 2 個


OnChange    // Canvas 狀態改變時觸發 (Pen/Brush/Font 等屬性變更)
OnChanging  // Canvas 狀態即將改變時觸發 (可攔截/修改)

核心方法分類速查

屬性類型說明
ClipRectTRect當前裁剪矩形 (唯讀)
HandleHDC底層 GDI 裝置上下文句柄
LockCountInteger鎖定計數 (Lock/Unlock 配對)
CanvasOrientationTCanvasOrientation座標系統方向 (coLeftToRight/coRightToLeft)
PenPosTPoint當前筆位置 (MoveTo/LineTo 更新)
Pixels[X,Y]TColor像素顏色讀寫 (慢,大量操作用 ScanLine)
TextFlagsLongint文字輸出標誌 (ETO_* 組合)
BrushTBrush畫刷對象 (填充屬性)
CopyModeTCopyMode位圖複製模式 (cmSrcCopy/cmSrcAnd 等)
FontTFont字體對象 (文字屬性)
PenTPen畫筆對象 (線條屬性)

關鍵屬性使用提示

  • Handle:需呼叫 WinAPI 時使用,HandleAllocated 先檢查有效性
  • PenPos:MoveTo 更新,LineTo 更新,僅讀
  • ClipRect:受 SelectClipRgn 影響,繪圖自動裁剪
  • Pixels:單像素讀寫極慢,大面積用 ScanLine (TBitmap) 或 BitBlt
  • Lock/Unlock:多執行緒共用 Canvas 時保護,TryLock 非阻塞版

事件驅動繪圖模式


type
  TMyCanvas = class(TCanvas)
  protected
    procedure Changed; override;
    procedure Changing; override;
  end;

procedure TMyCanvas.Changed;
begin
  inherited;
  if Assigned(OnChange) then OnChange(Self);
  // 可在此同步更新 UI、記錄操作歷史等
end;

版本差異提示

  • D2009+:TextRect 重載增加 TTextFormat 參數版本
  • D10+:CanvasOrientation 支援 RTL 佈局
  • FMX:TCanvas 為抽象類,具體實現為 TBitmapCanvas/TContext3D 等

熟記 TCanvas 這 42+11+2 成員的分類與核心用法,能在繪圖開發中快速定位所需 API,避免重複造輪子。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類別方法
直線/移動MoveTo, LineTo
矩形/圓角Rectangle, RoundRect, FillRect, FrameRect
橢圓/圓弧Ellipse, Arc, Chord, Pie
多邊形/曲線Polygon, Polyline, PolyBezier, PolyBezierTo
位圖/圖像Draw, StretchDraw, BrushCopy, CopyRect
文字輸出TextOut, TextRect, TextExtent, TextWidth, TextHeight
填充/染色FloodFill, FillRect
鎖定/同步Lock, Unlock, TryLock, Refresh
焦點/特殊DrawFocusRect