Einen Punkt meiner Wunsch und Problemliste kann ich nun doch schon FAST streichen. Und zwar gehts um den Border. Ich vermute mal, dass der Stift beim zeichnen zentriert aufgesetzt wird und habe aus dem Grund mal die X-Position um die Hälfte der BoderWidth verschoben und siehe da, wenn ich eine BorderWidth > 1 habe funzt das schon mal. Der Code, der nicht wirklich schön ist, sieht so aus - zumindest bei mir. Werde die Division vorher einmal erledigen und nicht jedesmal neu rechnen lassen und einen Klausel für die BorderWidth 1 einführen.
Delphi-Quellcode:
//zeichnen des rahmens
Canvas.MoveTo(0 + (BorderWidth div 2),0); //links oben
Canvas.LineTo(myRect.Left + (BorderWidth div 2),myRect.Bottom);
Canvas.MoveTo(0,0 + (BorderWidth div 2));
Canvas.LineTo(myRect.Right,myRect.Top + (BorderWidth div 2));
Canvas.MoveTo(self.Width-(BorderWidth div 2),0); //rechts unten
Canvas.LineTo(myRect.Right-(BorderWidth div 2),myRect.Bottom);
Canvas.MoveTo(0,self.Height-(BorderWidth div 2)); //links unten
Canvas.LineTo(myRect.Right,myRect.Bottom-(BorderWidth div 2));