Hi Pierre and Lazarus list,
2010/2/22 Pierre Delore :
Show quoted text 9 lines
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--------------------------------------------------------------------------------------------------------
Show quoted text 16 lines
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.
Show quoted text 23 lines
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.)