小弟我想在内存中绘图,为什么下面的代码没反应呢

我想在内存中绘图,为什么下面的代码没反应呢?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn_1: TButton;
    procedure btn_1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DrawBufImage(bufCanvas:TCanvas );
  end;

var
  Form1: TForm1;
  oldbmp,Bufbmp:TBitmap ;
implementation

{$R *.dfm}

procedure TForm1.DrawBufImage(bufCanvas: TCanvas);
begin
  bufCanvas.Pen.Color :=clBlack ;
  bufCanvas.MoveTo(0,0);
  bufCanvas.LineTo(100,100);
end;

procedure TForm1.btn_1Click(Sender: TObject);
begin
  Bufbmp:=TBitmap.Create ;
  DrawBufImage(Bufbmp.Canvas );
  bitblt(self.Canvas.Handle, 0, 0, 400, 400,
  BufBmp.Canvas.Handle, 0, 0, SRCCOPY);
  Bufbmp.Free ;
end;

end.



没反应,是哪里错了呢
------解决方案--------------------
引用:
引用:Delphi/Pascal code?12345678910111213141516171819202122procedure TForm1.btn_1Click(Sender: TObject);var  img: TImage;begin  img := TImage.Create(Self);  try    img.Par……


SRCCOPY改成SRCAND


bitblt(self.Canvas.Handle, 0, 0, 200, 200,
    img.Canvas.Handle, 0, 0, SRCCOPY);
----------------------------------------------------
bitblt(self.Canvas.Handle, 0, 0, 200, 200,
    img.Canvas.Handle, 0, 0, SRCAND);