Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2010-02

Bitmap transparency problem (I don't want transparency)

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Pierre Delore

I Howard,

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.

ImgList is a TImageList.

In my application I first load images in TImageList and after, with an 'index', I want to display an image from this list. The class I use is inherited from a TCustomControl.

This is not for me easy for me to works with graphics. So this code is inspired from examples founded over the net. I probably not used the best way to this job.

If you have an example that do this, send it to me.

Thanks in advance.

Pierre Delore http://datalinkwristapps.free.fr http://dpsite.free.fr ----- "Howard Page-Clark" a ?crit : > 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 http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20100222/b2bd365a/attachment-0001.html>

Reply by email