Obwohl ich nicht generell die Verwendung von with verteufeln würde, muss ich Jens in diesem Fall Recht geben. Ich möchte wetten, wenn Du Deinen Code etwas erweiterst, tritt keine Änderung ein, aber evtl. geht Dir dann ein Licht auf:
Delphi-Quellcode:
with shape1 do
begin
self.Canvas.Pen.Color := clBlack;
self.Canvas.MoveTo(Left, Top);
self.Canvas.LineTo(Width+left, Height+Top);
end;