Problems with drawing on Image.Canvas

I am trying to copy a graph drawn by my Delphi program to the clipboard.
Since I can't figure out how to create a Windows metafile, I've been
trying to draw the graph on the Canvas of an Image object so that I can
copy it using Clipboard.Assign. Unfortunately, I've run into two problems:

  1) When I maximize the form with the image, the graph is clipped
     to the size at startup of the image. The graph resizes and displays
     correctly when the window is resized smaller than the initial size.

  2) Lines draw funny - the diagonal lines drawn by the example code
     below look like dashed lines.

Suggestions?

Tad Slawecki (t...@limno.com)
Computer Manager
LTI, Limno-Tech, Inc.

----- Example code starts here -----

procedure TForm1.FormPaint(Sender: TObject);

{ Form1 has an Image component named Image1 }

var

scrxr, scryr, scrxmin, scrymin: integer;
NewPen, OldPen: HPen;

begin

  { ----- Size Image1 to window ----- }

  Image1.SetBounds(1,1,ClientWidth - 1,ClientHeight -1 );

  { ----- Create a solid pen ----- }

  NewPen := CreatePen(PS_SOLID,1,0);
  OldPen := SelectObject(Image1.Canvas.Handle,NewPen);

  { ----- Determine plot size ----- }

  scrxr := ClientWidth - 10;
  scryr := ClientHeight - 10;

  scrxmin := 5;
  scrymin := ClientHeight - 5;

  { ----- Clear Image1 ----- }

  Rectangle(Image1.Canvas.Handle,1,1,ClientWidth-1,ClientHeight-1);

  { ----- Draw box ----- }

  Rectangle(Image1.Canvas.Handle,scrxmin,scrymin,
            scrxmin+scrxr,scrymin-scryr);

  { ----- Draw diagonals  ----- }

  MoveTo(Image1.Canvas.Handle,scrxmin,scrymin);
  LineTo(Image1.Canvas.Handle,scrxmin+scrxr,scrymin-scryr);

  MoveTo(Image1.Canvas.Handle,scrxmin+scrxr,scrymin);
  LineTo(Image1.Canvas.Handle,scrxmin,scrymin-scryr);

  { ----- Draw additional line ----- }

  MoveTo(Image1.Canvas.Handle,scrxmin+1,scrymin);
  LineTo(Image1.Canvas.Handle,scrxmin+1,scrymin-scryr);

  { ----- Delete pen ----- }

  SelectObject(Image1.Canvas.Handle,OldPen);
  DeleteObject(NewPen);

end;

procedure TForm1.FormResize(Sender: TObject);
begin
  Invalidate;
end;