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
ExtCreatePen.
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?