DrawRectangle 是 GDI+ 最基礎的繪圖方法之一,提供多種重載支援整數/浮點座標、TGPRect 結構體傳遞。配合 MakeRect 輔助函數可簡化矩形構建代碼。
g.DrawRectangle(p, x, y, w, h: Single); { 浮點座標 }
g.DrawRectangle(p, x, y, w, h: Integer); { 整數座標 }
g.DrawRectangle(p, rect: TGPRect); { 結構體 }
g.DrawRectangle(p, rect: TGPRectF); { 浮點結構體 }
繪製兩個矩形:第一個指定座標寬高,第二個使用 MakeRect 以中心點擴展:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI;
procedure TForm1.FormPaint(Sender: TObject);
const
w = 100;
h = 50;
var
g: TGPGraphics;
p: TGPPen;
x, y: Single;
begin
g := TGPGraphics.Create(Canvas.Handle);
p := TGPPen.Create(0, 2);
g.Clear(MakeColor(255, 255, 255));
x := 20;
y := 20;
p.SetColor(aclRed);
g.DrawRectangle(p, x, y, w, h);
p.SetColor(aclGold);
x := x + w / 2;
y := y + h / 2;
g.DrawRectangle(p, MakeRect(x, y, w, h));
g.Free;
p.Free;
end;
end.

MakeRect(X, Y, W, H):最常用,左上角座標 + 寬高MakeRect(Point, Size):分離位置與尺寸,利於動畫插值MakeRect(TRect):直接轉換 VCL TRect,互操作便利MakeRectF 適合高 DPI、縮放、旋轉場景掌握矩形繪製是所有 2D 圖形程式設計的起點,建議熟記常用重載與輔助函數。