procedure TForm1.Button1Click(Sender: TObject);
var
bmp:tbitmap;
begin
bmp:=image2.Picture.Bitmap;image1.Picture.Bitmap:=image2.Picture.Bitmap;
form1.Canvas.Draw(0,0,bmp);
end;
本来应该在左上角出现image2的图象的,但是没有出现。
不知道什么原因,请指点一下

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    //image1.Picture.Bitmap:=image2.Picture.Bitmap;
    form1.Canvas.Draw(0,0,image2.Picture.Bitmap);
    end;
    //有个问题,image2里的图像是bmp格式的么?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    bmp:tbitmap;
    begin
    bmp:=TBitmap.Create;
    bmp.Assign(image2.Picture.Graphic);
    //image1.Picture.Bitmap:=image2.Picture.Bitmap;
    form1.Canvas.Draw(0,0,bmp);
    bmp.Free;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Canvas.Draw(0, 0, Image2.Picture.Graphic);
    end;
      

  4.   

    对不起大家是我没有说清楚。
    form1.Canvas.Draw(0,0,bmp);这句是可以实现在左上角出现图象的,但是
    正是有了前面的一句image1.Picture.Bitmap:=image2.Picture.Bitmap;之后就不出现了
    只是image1的图象变成image2的了而已。
    我想问的是这个问题。
      

  5.   

    var
      Bmp: TBitmap;
    begin
      Bmp := Image2.Picture.Bitmap;
      Bmp.Canvas.FillRect(Bmp.Canvas.ClipRect);
    end;这样的赋值并不是将内容赋值
    而是指针地址赋值如果需要内容赋值需要创建TBitmap
    Bmp := TBitmap.Create;
    Bmp.Assign(Image2.Picture.Bitmap);注意:
    Image1.Picture.Bitmap := Image2.Picture.Bitmap;
    这个是属性赋值
    实际执行了
    procedure TPicture.SetBitmap(Value: TBitmap);
    begin
      SetGraphic(Value);
    end;
      

  6.   

    我的也是D7。
    运行的结果就是将Image2的图像copy到Image1和Form上。
    LZ新建一个工程,看看运行是否正常。
      

  7.   

    image1.Picture.Bitmap:=image2.Picture.Bitmap;
    和form1.Canvas.Draw(0,0,bmp);这两句单独都可以实现,但是就是象我前面提到的,
    放在一起就只有image1.Picture.Bitmap:=image2.Picture.Bitmap;
    实现了,而form1.Canvas.Draw(0,0,bmp);没有表现出来。
    我现在的想法是image1的图象把form1.Canvas.Draw(0,0,bmp);产生的图象给覆盖了,但是我又觉得不对,因为form1.Canvas.Draw(0,0,bmp);这句在后面呀