Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

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

TCanvas.Pen und die abgerundeten Ecken

  Alt 26. Mai 2007, 13:45
Moin moin!

Die Canvas.LineTo-Methode hat eine dumme Eigenschaft: sie rundet die Ecken der Linien ab. Bei dünnen Linien merkt man das kaum, bei dickeren wird es aber richtig nervig, wenn man Kanten exakt aufeinander zeichnen will

Also habe ich gesucht und gefunden, wie sich dieses Problem theoretisch lösen lässt, nämlich mit Hilfe der Funktion MSDN-Library durchsuchenExtCreatePen.

Allein - trotz Verwendung selbiger - tut sich rein garnichts, was die Gestaltung der Ecken der Linien betrifft

Mein Code ist Folgender:
Delphi-Quellcode:
const
  SquarePenStyle = PS_Geometric or PS_Solid or PS_EndCap_Square or PS_Join_Miter;
var
  LogBrush: TLOGBRUSH;
  P : HPen;


  LogBrush.lbColor := ColorToRGB(Canvas.Pen.Color);
  LogBrush.lbHatch := 0;
  P := ExtCreatePen(SquarePenStyle, Canvas.Pen.Width, LogBrush, 0, nil);
  Canvas.Pen.Handle := P;

  Canvas.LineTo(X,Y);
Die Ecken bleiben weiterhin abgerundet

Bei der weiteren Recherche bin ich darauf gestoßen, dass es da in Delphi 2005 einen Bug gab:
http://qc.borland.com/wc/qcmain.aspx?d=13225
bzw http://qc.borland.com/wc/qcmain.aspx?d=9661
Der soll aber angeblich gefixt sein, daran kann es also auch nicht liegen

Woran aber dann?

  Mit Zitat antworten Zitat