转载 是 装载 么,否则看不懂。当是 装载 吧,测试下面代码没有发现问题procedure TForm1.FormCreate(Sender: TObject);
begin
  img1.AutoSize:=True;
  img2.AutoSize:=True;
  img1.Picture.Bitmap.LoadFromFile('c:\1.bmp');
  img2.Picture.Bitmap.LoadFromFile('c:\2.bmp');
end;procedure TForm1.btn1Click(Sender: TObject);
var
  r:TRect;
begin
  r:=Rect(20,20,100,100);
  img2.Canvas.CopyRect(r,img1.Canvas,r);
end;

解决方案 »

  1.   


    确认可以吗?在我电脑里不可以,我的系统是,D7+XP SP3 ,就抄的你上面代码
      

  2.   

    Image2要装载bmp的,否则调用Image2.Canvas就会报错,导致CopyRect无反应。你的语句是在try..except中吧,把异常给吃了。或者画到了看不到的区域了吧,误以为没反应!
      

  3.   


    我的测试环境下,如果Image2装载了bmp,CopyRect没反应,不装载是有反应,没有做异常处理,就是用了CopyRect
      

  4.   

    我就是用的你代码,未装载和装载区别有这么大吗?还有Image好像有两个画布,这两个画布有什么区别吗
      

  5.   


    确认可以吗?在我电脑里不可以,我的系统是,D7+XP SP3 ,就抄的你上面代码我是没有问题,源码带exe http://pan.baidu.com/s/1mv5F4
      

  6.   

    image 控件只有一个canvas,image类里又有一个成语对象TBitmap,TBitmap对象自身也有它的canvas
      

  7.   

    刚才试验了一下,发现换成我的图片就不行,麻烦帮我测试一下呢,奇怪,想不出来哪里错了把后缀名改成BMP就可以了,看看我的图片为什么不可以呢
      

  8.   

    我问的就是这两个Canvas有什么区别呢
      

  9.   

    改后缀不行哦,你应该改成bmp格式,而不是仅仅改后缀,只改后缀它还是一个bmp格式图片
      

  10.   

    我那个图片就是从BMP改个后缀名变成JPG的,你用WINDOWS自带的图片编辑软件,就可以另存为BMP啊,呵呵,麻烦你了
      

  11.   

    我问的就是这两个Canvas有什么区别呢TImage和TBitmap两个对象各自的canvas,根本不相关。
    TImage.Canvas复制绘制TImage自身(比如边框、客户区域等)
    TBitmap是一个Bitmap资源的封装,它的canvas就复制绘制这个BMP本身
    TImage是一个容器,它里面装着一个TBitmap,TBitmap显示什么跟它的容器Image没有关系比如说,你有一个image控件,它的尺寸是400*400的(autosize:=false),然后加载一个 50*50大小的图片,
    那么你看到的这个图片也就是50*50那个区域,但是这个image就是400*400的大小,image.Picture.Bitmap.canvas赋值绘制自身图像,因为它的高宽也就是50*50而已,
    其余空白的区域就是image.canvans画的,你如果给这个image带个边框就容易看出来了
      

  12.   

    因为上传不能采用BMP格式,所以改了一下后缀名,就变成了JPG,然后上传到这里的
      

  13.   

    你实际就是通过贴图让灰色那边的字母边蓝色吧,你就是搞不清这些Rect而已procedure TForm1.btn1Click(Sender: TObject);
    var
      r:TRect;
    begin
      // 每个字母区域大约是55*55
      r:=Rect(55*2,55*3,55*3,55*4); // 显示 U
      //r:=Rect(55*2,55*2,55,55); // 这个就显示 H
      img2.Canvas.CopyRect(r,img1.Canvas,r);
    end;
      

  14.   

    http://pan.baidu.com/s/1o6NQLx4
    睡觉去咯