gpt4 book ai didi

delphi - 是否可以更改虚线的大小?

转载 作者:行者123 更新时间:2023-12-03 15:26:10 24 4
gpt4 key购买 nike

我正在 TImage Canvas 上绘制虚线,发现虚线的大小对于绘图区域来说太大了。有没有办法改变 Canvas 上绘制的虚线的大小?
这就是我为了能够绘制虚线而所做的。

Canvas.Pen.Style := psDash;
Canvas.Polyline(myPoints);

而且我没有找到任何可以更改破折号大小/长度的 Pen 属性。

谢谢

最佳答案

根据http://docwiki.embarcadero.com/VCL/e/index.php/Graphics.TPenStyle您可以使用 psUserStyle

ExtCreatePen 的文档位于 http://msdn.microsoft.com/en-us/library/dd162705(VS.85).aspx

以下是我对 ExtCreatePen 如何与 TPen 结合使用的解释:

const
NumberOfSections = 8;
LineLengths: array[0..NumberOfSections-1] of DWORD =
(20, 15, 14, 17, 14, 8, 16, 9);
var
logBrush: TLogBrush;
begin

logBrush.lbStyle := BS_SOLID;
logBrush.lbColor := DIB_RGB_COLORS;
logBrush.lbHatch := HS_BDIAGONAL; // ignored

Canvas.Pen.Handle := ExtCreatePen(PS_GEOMETRIC or PS_USERSTYLE or PS_ENDCAP_ROUND or PS_JOIN_BEVEL,
4, logBrush, NumberOfSections, @LineLengths[0]);
// now Canvas.Pen.Style = psUserStyle

Canvas.Polyline([Point(0,0), Point(100,100), Point(200, 100)]);

end;

关于delphi - 是否可以更改虚线的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com