| 常數 | 視覺形狀 | 適用場景 |
| LineCapFlat | 平直截斷(預設) | 一般幾何線條 |
| LineCapSquare | 方形延伸半寬 | 對齊像素網格 |
| LineCapRound | 半圓形 | 有機曲線、流程圖 |
| LineCapTriangle | 三角形箭頭 | 向量、方向指示 |
| LineCapNoAnchor | 無錨點平直 | 特殊對齊需求 |
| LineCapSquareAnchor | 方形錨點 | 技術繪圖標準 |
| LineCapRoundAnchor | 圓形錨點 | 流程圖連接點 |
| LineCapDiamondAnchor | 菱形錨點 | 決策節點、UML |
| LineCapArrowAnchor | 箭頭錨點 | 箭頭線、向量場 |
四 ComboBox 控制介面
- ComboBox1:虛線樣式
- ComboBox2:起始帽
- ComboBox3:虛線中間帽
- ComboBox4:終止帽
- 三條平行線不同顏色並排顯示效果
procedure TForm1.FormPaint(Sender: TObject);
const ColorArr: array[0..2] of TGPColor = (aclRed, aclGreen, aclBlue);
var g: TGPGraphics; p: TGPPen; x1, x2, y, i: Integer;
begin
g := TGPGraphics.Create(Canvas.Handle);
p := TGPPen.Create($FF000000, 16); {粗線條明顯顯示線帽}
p.SetDashStyle(TDashStyle(ComboBox1.ItemIndex));
p.SetLineCap(StartCap, EndCap, DashCap); {關鍵:一次設定三種帽}
x1 := 50; x2 := ClientWidth - 50; y := 60;
for i := 0 to 2 do begin
p.SetColor(ColorArr[i]); g.DrawLine(p, x1, y, x2, y); Inc(y, 40);
end;
p.Free; g.Free;
end;
執行效果預覽

虛線中間帽特殊說明
- 僅在
DashStyle != Solid 時生效
- 控制每個虛線段的兩端形狀
- 搭配
LineCapRound 產生圓點虛線效果
表單定義檔
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 165
ClientWidth = 515
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
object ComboBox1: TComboBox ... {虛線樣式}
object ComboBox2: TComboBox ... {起始帽}
object ComboBox3: TComboBox ... {中間帽}
object ComboBox4: TComboBox ... {終止帽}
end
- 上一篇文章: 再學GDI+[37]: 畫筆自訂線帽 - TGPCustomLineCap 打造專屬起始/終止箭頭形狀
- 下一篇文章: 再學GDI+[35]: 畫筆虛線位移動畫 - SetDashOffset 實現螞蟻線/掃描線效果
Copyright ©
程式碼之家 All Rights Reserved