Moin moin.
Standardmäßig werden bei der LineTo-Methode eines TCanvas die Ecken der Linie abgerundet gezeichnet. Wer das nicht möchte und lieber echte eckige Ecken hat, kann dies mit Hilfe der Funktion
ExtCreatePen erreichen.
Verwenden kann man die beispielsweiße so:
Delphi-Quellcode:
const
SquarePenStyle = PS_GEOMETRIC or PS_ENDCAP_SQUARE or PS_JOIN_BEVEL;
procedure SetPen(Canvas: TCanvas; Color: TColor;
Width: Integer; Style: TPenStyle);
var
LogBrush: TLogBrush;
begin
ZeroMemory(@LogBrush, SizeOf(LogBrush));
LogBrush.lbColor := ColorToRGB(Color);
LogBrush.lbHatch := 0;
Canvas.Pen.Handle := ExtCreatePen(SquarePenStyle or Ord(Style), Width,
LogBrush, 0, nil);
end;
Beispielaufruf:
Delphi-Quellcode:
SetPen(Canvas, clBlack, 10, psDashDotDot);
Canvas.MoveTo(10, 10);
Canvas.LineTo(200, 200);