我有一个Delphi 6应用程序,所有者在TListBox行中绘制图标以及一些文本。 TListBox
的样式设置为lbOwnerDrawVariable
。我遇到的问题是选择一个项目。列表框用于更改所选行的背景颜色的高亮颜色使图标看起来很糟糕,因为图标具有透明像素(我基于可见证据的假设),并且这些像素被更改为背景颜色从而破坏图片。是否有一种简单的方法可以强制将透明像素绘制成某种颜色,这样我就可以消除这个问题?我使用TImageList.Draw()
方法在TListBox
画布上绘制图标。
答案 0 :(得分:4)
您可以使用Draw
方法将DrawingStyle
设置为'dsNormal',并将您希望用作背景的颜色设置为BkColor
:
ImageList1.BkColor := clHighlight;
ImageList1.Draw(Canvas, 0, 0, 0, dsNormal, itImage);
如果Delphi 6没有'{1}}重载'DrawingStyle',那么:
Draw