![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Canvas.Draw, Bitmap, ImageList [D7]
nAlex © (2007-10-24 13:28:00)У меня есть ImageList с загруженным в него bmp. В TListView CustomDrawItem я отрисовываю самостоятельно пункты, но вот вопрос, как мне сделать этот Bitmap прозрачным? Сейчас поясню:
Сначала я отрисовываю выделение пункта:
if Item.Selected then
...
ListView1.Canvas.Rectangle(...)
А потом рисую Bitmap из листа:
ListView1.Canvas.Draw(1, IconRect.Top + 1, B);
И получается, что моим рисунком часть выделения (Rectangle) перекрывается, как можно добиться частичной прозрачности? Как в TImage.Transparent.
Ega23 (2007-10-24 14:06:00) [1]
> Здается мне, что это код добавления новой картинки с диска,
> а у автора уже есть картика из дизайнтайма и ему ее нужно
> просто нанести.
Ну да, только не с диска, а из БД.
nAlex (2007-10-24 13:55:00) [2]Спасибо. Совет
> homm © (24.10.07 13:40) [8]
очень помог.
homm (2007-10-24 13:53:00) [3]> [9] Ega23 © (24.10.07 13:44)
Здается мне, что это код добавления новой картинки с диска, а у автора уже есть картика из дизайнтайма и ему ее нужно просто нанести.
Ega23 (2007-10-24 13:44:00) [4]
bmp := TBitmap.Create;
bmp.Transparent := True;
bmp.TransparentMode := tmAuto;
try
bmp.LoadFromStream(ms);
bmp.Width := Width;
bmp.Height := Height;
ImageIndex := ImageList. AddMasked(bmp, bmp.TransparentColor);
except
ImageIndex:=-1;
end;
homm (2007-10-24 13:40:00) [5]ImageList.Draw(ListView.Canvas,1,IconRect.Top+1,Item.ImageIndex)
homm (2007-10-24 13:39:00) [6]> [6] nAlex (24.10.07 13:38)
> Бррр.. что то я не понял, я же загружаю из него в битмап
> а Draw делаю для ListView.Canvas.
А ты не делай так.
nAlex (2007-10-24 13:38:00) [7]Бррр.. что то я не понял, я же загружаю из него в битмап а Draw делаю для ListView.Canvas.
homm (2007-10-24 13:35:00) [8]> [4] nAlex (24.10.07 13:33)
у ImageList, насколько я помню, есть метод Draw, который рисует с учетом прозрачного цвета.
nAlex (2007-10-24 13:33:00) [9]Самое прямое, я битмап загружаю из ImageList. Возможно я не так как надо его оттуда достаю...
ImageList1.GetBitmap(Item.ImageIndex, B);
homm (2007-10-24 13:31:00) [10]Не то сморозил…
> [0] nAlex (24.10.07 13:28)
> [1] nAlex (24.10.07 13:29)
Какое отношение имеет ко всему этому ImageList ?
homm (2007-10-24 13:30:00) [11]у ListView1 нет что-то наподобии ТрнсперентКолор?
nAlex (2007-10-24 13:29:00) [12]Ещё, сделано это, но не помогает:
B := TBitmap.Create;
B.Transparent := True;
B.TransparentMode := tmAuto;