[Lazarus] Bitmap transparency problem (I don't want transparency)

Howard Page-Clark hdpc at talktalk.net
Sun Feb 21 22:39:31 CET 2010


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20100221/a08d922d/attachment-0004.html>


More information about the Lazarus mailing list