Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#1

TCanvas.LineTo ohne abgerundete Ecken

  Alt 1. Jun 2007, 11:48
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 MSDN-Library durchsuchenExtCreatePen 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);
  Mit Zitat antworten Zitat