title: "Object lock not owned" error while using OnPaint method
body: <p>I'm trying to draw a simple image with OnPaint method. The code compiles just fine, but when the application starts, it shows "Object lock not owned" error and nothing else happens. Could you please tell me what mistake I made? The code shows the OnPaint event I'm using. Thank you all for your help.</p>
  
  <pre><code>procedure TTabbedForm.Image1Paint(Sender: TObject; Canvas: TCanvas;
    const ARect: TRectF);
    var
    p1, p2, p3, p4, p5, p6: TPointF;
    prst1: TRectF;
    i :Integer;
  begin
   Image1.Bitmap.Canvas.Stroke.Color := TAlphaColors.Black;
   Image1.Bitmap.Canvas.Stroke.Thickness := 3;
   p1 := TPointF.Create(PX, PY);
   Image1.Bitmap.Canvas.BeginScene;
    with TabbedForm do begin
        for i := 0 to 360 do
          if (i mod 15)=0 then
          begin
           p2 := TPointF.Create(Round(PX+PP*sin(i*pi/180)), Round(PY+PP*cos(i*pi/180)));
            Image1.Bitmap.Canvas.DrawLine(p1, p2, 100);
          end;
        for i := 0 to PP do
          if (i mod 20)=0 then
          begin
          prst1 := TRectF.Create(PX+i,PY+i,PX-i,PY-i);
          Image1.Bitmap.Canvas.DrawEllipse(prst1, 100);
          end;
        for i := 0 to 400 do
          if (i mod 20)=0 then
          begin
          p3 := TPointF.Create(i,2*PP);
          p4 := TPointF.Create(i,2*PP+2*PP);
          Image1.Bitmap.Canvas.DrawLine(p3, p4, 100);
          end;
        for i := 0 to 400 do
          if (i mod 20)=0 then
          begin
          p5 := TPointF.Create(0,2*PP+i);
          p6 := TPointF.Create(2*PP+2*PP,2*PP+i);
          Image1.Bitmap.Canvas.DrawLine(p5, p6, 100);
          end;
    Image1.Bitmap.Canvas.EndScene;
    end;
   end;
  </code></pre>