On 21/2/10 6:57, Pierre Delore wrote:
Hi,

I have a transparency problem when I try to display a bitmap stored in a TImagList. The bitmap I want to display is a green arrow with a white background. I want to display it without transparency. With the code below the bitmap is displayed but the background is not white (it's a copy of a part of the screen). If I uncomment the 2 lines with the fillrect, the background is set to green.

Any ideas?

>--------------------------------------------------------------------------------------------------------
procedure TImgList.Paint;
var
  Bitmap: TBitmap;
begin
    Bitmap := TBitmap.Create;
    try
      Bitmap.Height := pHeight;
      Bitmap.Width := pWidth;

TImgListItem(ListImg.Items[index]).ImgList.GetBitmap(tagv,Bitmap); //the image is a green arrow with a white background

      Bitmap.Transparent:=False;
//Canvas.Brush.Color := clGreen; If I uncomment this part the background is set to green
      //Canvas.FillRect(0,0,pwidth,pheight);
      Canvas.Draw(0, 0, Bitmap);
    finally
      Bitmap.Free;
    end;

  inherited Paint;
end;

Difficult to be sure based on an uncompilable code snippet. Presumably TImgList is a TImage (not a TImageList)? But you carefully create a bitmap and draw it on the component's canvas, and then draw over it again with a call to inherited Paint.

HTH

Howard
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to