我在image.canvas上画线:
  image1.Canvas.Pen.Color:=clRed;
  image1.Canvas.MoveTo(100,100);
  image1.Canvas.LineTo(500,100);
结果image.canvas都是先用白色填充image的所在区域,再在上面画线,如何让其不填充背景或用透明色填充?

解决方案 »

  1.   

    SetBkMode(Image1.Canvas.Handle, TRANSTRANT);
      

  2.   

    不起作用啊!
      SetBkMode(Image1.Canvas.Handle,TRANSPARENT);
      image1.Canvas.Pen.Color:=clRed;
      image1.Canvas.MoveTo(100,50);
      image1.Canvas.LineTo(1000,50);
    还是有白背景
      

  3.   

    Image1.Transparent:=True;
     image1.Canvas.Pen.Color:=clRed;
    image1.Canvas.MoveTo(100,50);
    image1.Canvas.LineTo(1000,50);
      

  4.   

    image1的transparent已经设为true了,跟这个没关系,我觉得是canvas的问题
      

  5.   


      Image1.Transparent:=True;
      

  6.   

    直接在窗体上放一个Image和一个按钮,把
    Image1.Transparent:=True;
     image1.Canvas.Pen.Color:=clRed;
    image1.Canvas.MoveTo(100,50);
    image1.Canvas.LineTo(1000,50);
    放在按钮里,你先试试,不要给image加入任何图,应该没问题。
    楼主找找别的问题吧
      

  7.   

    cuilj(一云忆水)兄:我是把image1的transparent属性设为true后才进行的画图操作,仍然是先用白色填充image区域后,再在上边画一条红线的
    我记得原来好像没有这个问题,我最近装了一个activex控件,之后总出现一个rtl70.bpl的问题,是否跟这个有关系?
      

  8.   

    如果将2个image重叠在一起,底下的image2上画一个二维坐标,上面image1通过一系列坐标值在此二维坐标中画一条曲线,如果canvas的背景不是透明的,则无法显示出image2中画的二维坐标,请问该怎么解决
      

  9.   

    晕倒,楼主的D肯定有问题,我帖的下面代码是经过测试的,不知为什么楼主那儿不行。
    //-0-----------------------------
    Image1.Transparent:=True;
    image1.Canvas.Pen.Color:=clRed;
    image1.Canvas.MoveTo(100,50);
    image1.Canvas.LineTo(1000,50);
    //-0-----------------------------
    你要实现的是有背景作图吧?但是我也试过当将一个含有图片Image2放在另一个Image1的下面,
    上面语句仍然很正常的工作。从此我得到了结论:楼主的电脑来自火星!!^_^
      

  10.   

    呵呵,火星不火星的我不知道,不过以前做多个image重叠时也没有遇到现在的问题,恐怕真是delphi的毛病了
      

  11.   

    两个image重叠放置,image1在上,Image2在下:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      image2.Transparent:=true;
      image2.Canvas.Pen.Color:=clRed;
      image2.Canvas.MoveTo(20,20);
      image2.Canvas.LineTo(50,20);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      image1.Transparent:=true;
      image1.Canvas.Pen.Color:=clblue;
      image1.Canvas.MoveTo(20,20);
      image1.Canvas.LineTo(20,50);
    end;点按钮后只能显示一条蓝竖道
      

  12.   

    问题就在这,不知道delphi到底啥问题?高手帮忙啊!
      

  13.   

    leonyuann(舞月光) :你用了delphi几?
      

  14.   

    建议你别在image上画,直接在form.Canvas上画问题会少些。
      

  15.   

    To leonyuann(舞月光):
      应该还有一个属性需要设置:
     image1.Canva.brush.style:=bsclear;
      有时不设这个属性要看先后顺序!
      你在试试!
      

  16.   

    zhan_guotai(zhan_guotai),不是你说的问题!
      

  17.   

    我认为zhan_guotai(zhan_guotai)的意见是正确的,Canvas.brush.style必须设为bsclear;
      

  18.   

    我的情况同楼主一样,应当是d的问题,因为我在另一台机器上试过好用
    在不好用的机器上,我现在发现如果image1如果load一个bmp图像就可以
    如果bmp是全白色的,就完全透明,看不到图像的内容