Hallo zusammen,
ich möchte eine Line zeichnen, bei der sich Quadrate und gleich große Leerräume abwechseln. Leider klappt das nicht - was herauskommt sind dashes und relativ schmale Leerräume. Ich hätte ja zumindest erwartet, dass beide Abschnitte gleich groß sind.
Hat jemand eine Idee?
Delphi-Quellcode:
procedure TdlgMain.DrawLine(BM: tBitmap);
var
aPattern: Array[0..1] of Integer;
lBrush: LogBrush;
LineWidth: Word;
NewPen: hPen;
X: Integer;
Y: Integer;
begin
LineWidth := 40;
lbrush.lbStyle := BS_SOLID;
lbrush.lbColor := clRed;
lbrush.lbHatch := 0;
if NewPen <> 0 then begin
NewPen := 0;
DeleteObject(NewPen);
end;
aPattern[0] := LineWidth;
aPattern[1] := LineWidth;
NewPen := ExtCreatePen(PS_GEOMETRIC or PS_USERSTYLE or
PS_ENDCAP_SQUARE or PS_JOIN_MITER,
LineWidth, lBrush, Length(aPattern), @aPattern);
BM.Canvas.Pen.Handle := NewPen;
BM.Canvas.MoveTo(100, 0);
BM.Canvas.LineTo(100, BM.Height - 1);
if NewPen <> 0 then begin
NewPen := 0;
DeleteObject(NewPen);
end;
end;