我在timagelist中放了几个图片,现在想把他们分别取出来,但是要求取出的图片背景色发生改变,而且改变的颜色有可能不相同,请问怎么实现。

解决方案 »

  1.   

    我没有用过timagelist,但是背景色可以在属性里更改,在语句中加入backcolor;=你要的颜色,不就行了。
      

  2.   

    to:fatapple:
    第一次从tiamgelist中取出一张图片可以通过设置bkcolor改变其背景色,但是第二次取这张图片,再设置另外不同的背景色时背景不会改变,请问哪位知道原因?
      

  3.   

    var  Img: TBitmap;      Img.Width := 16;
          Img.Height := 16;
          Img.Canvas.Brush.Color := clBtnFace;  // change;
          Img.Canvas.FillRect(Rect(0, 0, 16, 16));
          Imagelist1.GetBitmap(0, Img);
      

  4.   

    可能我的问题没有说清楚,各位请看下面的代码:(我想知道为什么画出的图例背景不会变,下面两段代码都无法实现。);
    程序1:(无法改变背景颜色)
    procedure TForm1.Button1Click(Sender: TObject);
    var
      img:TBitmap;
    begin
      img:=TBitmap.Create;
      Img.Width := 16;
      Img.Height := 16;  Img.Canvas.Brush.Color := clGreen ;  // change;
      Img.Canvas.FillRect(Rect(0, 0, 16, 16));
      Imagelist1.GetBitmap(0, Img);
      Image1.Canvas.Brush.Bitmap:=img;
      Image1.Canvas.FillRect(Rect(10,10,100,100));  Img.Canvas.Brush.Color := clRed  ;  // change;
      Img.Canvas.FillRect(Rect(0, 0, 16, 16));
      Imagelist1.GetBitmap(0, Img);
      Image1.Canvas.Brush.Bitmap:=img;
      Image1.Canvas.FillRect(Rect(10,120,100,220));
      img.Free;
    end;
    程序2:(同样无法改变背景颜色)
    procedure TForm1.Button1Click(Sender: TObject);
    var
      img:TBitmap;
    begin
      img:=TBitmap.Create;
      Img.Width := 16;
      Img.Height := 16;  imagelist1.BkColor:=clgreen;
      imagelist1.GetBitmap(0,img) ;
      image1.Canvas.Brush.Bitmap:=img;
      Image1.Canvas.FillRect(Rect(10,10,100,100));  imagelist1.BkColor:=clred;
      imagelist1.GetBitmap(0,img) ;
      image1.Canvas.Brush.Bitmap:=img;
      Image1.Canvas.FillRect(Rect(10,120,100,220));end;
      

  5.   

    Image1.Canvas.Brush.Bitmap := nil;  // 增加一句.
      Image1.Canvas.Brush.Bitmap :=  img;