Delphi 的绘图功能- TPen类
Delphi 的绘图功能- TPen类
//TPen 的主要属性有四: Color、Width、Style、Mode
{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;
//下面的例子依次展示了各种样式:
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
//颜色模式测试程序:
var
i,x,y,w,n: Integer;
begin
{先画竖的颜色背景}
x := 0;
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;
{再按不同模式依次画 16 条红色的横线}
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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?