//TPen 的主要屬性有四:
Color、Width、Style、Mode
{Color: 顏色}{Width: 寬度; 默認是 1; 如果賦予 <= 0 的值, 會使用默認值}
//下面的例子依次展示了各種樣式:
{Style: 樣式; Delphi 定義了筆樣式枚舉 TPenStyle, 包含以下樣式:}
psSolid = 0; {實線}
psDash = 1; {段線; 要求筆寬<=1}
psDot = 2; {點線; 要求筆寬<=1}
psDashDot = 3; {線、點; 要求筆寬<=1}
psDashDotDot = 4; {線、點、點; 要求筆寬<=1}
psClear = 5; {不可見}
psInsideFrame = 6; {實線; 但筆寬是向裡擴展}
psUserStyle = 7; {自定義, Delphi.Net 支持}
psAlternate = 8; {交替, Delphi.Net 支持}var
//效果圖:
i,x,y,n: Integer;
begin
x := 10;
y := 15;
n := ClIEntWidth - 2*x;
Canvas.Pen.Color := clRed;
for i := 0 to 8 do
begin
Canvas.Pen.Style := TPenStyle(i);
Canvas.MoveTo(x, y);
Canvas.LineTo(x + n, y);
y := y + 15;
end;
end;
{Mode: 畫筆與背景的顏色混合模式; Delphi 定義了模式枚舉 TPenMode, 包含以下模式:}pmBlack {總是黑色}
//顏色模式測試程序:
pmWhite {總是白色}
pmNop {畫筆無效}
pmNot {背景色取反}
pmCopy {畫筆設置的顏色}
pmNotCopy {畫筆顏色取反}
pmMergePenNot {畫筆顏色與背景顏色的反色的組合}
pmMaskPenNot {畫筆顏色與背景公共色的反色的組合}
pmMergeNotPen {畫筆顏色取反後與背景顏色的組合}
pmMaskNotPen {畫筆的反色與背景的公共色的組合}
pmMerge {畫筆顏色與背景顏色的組合}
pmNotMerge {pmMerge 的反色}
pmMask {畫筆與背景公共顏色的組合}
pmNotMask {pmMask 的反色}
pmXor {畫筆顏色與背景顏色的 Xor 組合}
pmNotXor {pmXor 的反色}var
{先畫豎的顏色背景}
i,x,y,w,n: Integer;
begin x := 0;
{再按不同模式依次畫 16 條紅色的橫線}
y := 0;
w := ClIEntWidth div 18;
for i := 0 to 18 do
begin
Canvas.Brush.Color := PaletteIndex(i);
Canvas.FillRect(Rect(x, y, x+w, ClIEntHeight));
x := x + w;
end; x := 0;
//效果圖:
y := 20;
n := ClIEntWidth;
Canvas.Pen.Width := 4;
Canvas.Pen.Color := clRed;
for i := 0 to 15 do
begin
Canvas.Pen.Mode := TPenMode(i);
Canvas.MoveTo(x, y);
Canvas.LineTo(x + n, y);
y := y + 20;
end;
end;