Canvas.Brush.Style := bsClear;
Canvas.Pen.Width := 4;
Canvas.Pen.Style := psDot;
Canvas.Pen.Color := clRed;
Canvas.Pen.Mode := pmNotXor;
Canvas.MoveTo(5,5);
Canvas.LineTo(20,20);
我用以上代码画虚线,为啥出来的是实线呢
Canvas.Pen.Width := 4;
Canvas.Pen.Style := psDot;
Canvas.Pen.Color := clRed;
Canvas.Pen.Mode := pmNotXor;
Canvas.MoveTo(5,5);
Canvas.LineTo(20,20);
我用以上代码画虚线,为啥出来的是实线呢
image1.canvas.Pen.Width:=1;//宽度为1的
image1.canvas.Pen.Style:=psDash;
image1.canvas.MoveTo(0,0);
image1.canvas.LineTo(100,100);
但画宽度大于一的虚线就得用别的方法:
function CreateMyPen(const Width:integer):HPEN;
var myStyle: DWORD;
myBrush: TLogBrush;
begin
PenStyle := PS_GEOMETRIC or PS_ENDCAP_FLAT or PS_JOIN_ROUND or PS_DOT;
with myBrush do
begin
lbStyle := BS_SOLID;
lbColor := GetColor;
lbHatch := HS_BDIAGONAL;
end;
result := ExtCreatePen(PenStyle, DWORD(3), PenBrush, 0, nil);
end; canvas.pen := CreateMyPen(4)
canvas.MoveTo(10,10);
canvas.LineTo(100,100);