[Lazarus] Bitmap transparency problem (I don't want transparency)
Peter Williams
pewtas at gmail.com
Mon Feb 22 01:27:06 CET 2010
Hi Pierre and Lazarus list,
2010/2/22 Pierre Delore <dpliste at free.fr>:
> 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.
I think that you commented code reveals why this is happening. See my
untested suggested code
changes below.
>
> Any ideas?
>
a--------------------------------------------------------------------------------------------------------
> 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
// set colour of the Canvas Brush to white (using the constant "clWhite")
Canvas.Brush.Color := clWhite;
> //Canvas.FillRect(0,0,pwidth,pheight);
// now fill the background of the Canvas with the Canvas.Brush.Color
set to colour white
Canvas.FillRect(0,0,pwidth,pheight);
// note that my changes (above) are proposed, untested to the code
which you posted.
// my modifications to your code *should* make the background of the
Canvas clWhite before you draw Bitmap -- with the next line of code.
> Canvas.Draw(0, 0, Bitmap);
// hopefully now Bitmap will be drawn on a clWhite background... which
is the effect you said in your email you're wanting.
> finally
> Bitmap.Free;
> end;
>
> inherited Paint;
> end;
>
>
> Regards.
>
> --
> Pierre Delore
>
> http://datalinkwristapps.free.fr
> http://dpsite.free.fr
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
I hope that these mods to your posted code help. Please note that they
are proposed and untested.
Note: in my comments I use the British spelling of the word "colour"
not American spelling of "color".
With LOVE from PEW ;-)))
Fond Regards, Peter Eric (aka 'pew') WILLIAMS
from Hobart, Tasmania, Australia -- phone (03) 6236-9675
My free website is: http://pewtas.googlepages.com (or)
http://tinyurl.com/yuyejs
(please visit my free website and let me know what you think about it.)
More information about the Lazarus
mailing list