Вниз
Скачать: CL | DM;

Canvas.Draw, Bitmap, ImageList   Найти похожие ветки 

← →
nAlex   (2007-10-24 13:28) [0]

У меня есть ImageList с загруженным в него bmp. В TListView CustomDrawItem я отрисовываю самостоятельно пункты, но вот вопрос, как мне сделать этот Bitmap прозрачным? Сейчас поясню:

Сначала я отрисовываю выделение пункта:
if Item.Selected then
...
ListView1.Canvas.Rectangle(...)


А потом рисую Bitmap из листа:
ListView1.Canvas.Draw(1, IconRect.Top + 1, B);

И получается, что моим рисунком часть выделения (Rectangle) перекрывается, как можно добиться частичной прозрачности? Как в TImage.Transparent.


← →
nAlex   (2007-10-24 13:29) [1]

Ещё, сделано это, но не помогает:

 B := TBitmap.Create;
 B.Transparent := True;
 B.TransparentMode := tmAuto;


← →
homm ©   (2007-10-24 13:30) [2]

у ListView1 нет что-то наподобии ТрнсперентКолор?


← →
homm ©   (2007-10-24 13:31) [3]

Не то сморозил…


> [0] nAlex   (24.10.07 13:28)
> [1] nAlex   (24.10.07 13:29)

Какое отношение имеет ко всему этому ImageList ?


← →
nAlex   (2007-10-24 13:33) [4]

Самое прямое, я битмап загружаю из ImageList. Возможно я не так как надо его оттуда достаю...
 ImageList1.GetBitmap(Item.ImageIndex, B);


← →
homm ©   (2007-10-24 13:35) [5]

> [4] nAlex   (24.10.07 13:33)

у ImageList, насколько я помню, есть метод Draw, который рисует с учетом прозрачного цвета.


← →
nAlex   (2007-10-24 13:38) [6]

Бррр.. что то я не понял, я же загружаю из него в битмап а Draw делаю для ListView.Canvas.


← →
homm ©   (2007-10-24 13:39) [7]

> [6] nAlex   (24.10.07 13:38)
> Бррр.. что то я не понял, я же загружаю из него в битмап
> а Draw делаю для ListView.Canvas.

А ты не делай так.


← →
homm ©   (2007-10-24 13:40) [8]

ImageList.Draw(ListView.Canvas,1,IconRect.Top+1,Item.ImageIndex)


← →
Ega23 ©   (2007-10-24 13:44) [9]


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:53) [10]

> [9] Ega23 ©   (24.10.07 13:44)

Здается мне, что это код добавления новой картинки с диска, а у автора уже есть картика из дизайнтайма и ему ее нужно просто нанести.


← →
nAlex   (2007-10-24 13:55) [11]

Спасибо. Совет
> homm ©   (24.10.07 13:40) [8]

очень помог.


← →
Ega23 ©   (2007-10-24 14:06) [12]


> Здается мне, что это код добавления новой картинки с диска,
>  а у автора уже есть картика из дизайнтайма и ему ее нужно
> просто нанести.


Ну да, только не с диска, а из БД.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
2-1193209961
СержК
2007-10-24 11:12
2007.11.18
Как отфильтровать набор данных по текстовому полю


15-1192190259
Cyrax
2007-10-12 15:57
2007.11.18
Дистрибьютеры, дилеры и ремонт техники в сервисных центрах...


2-1193024018
San1712
2007-10-22 07:33
2007.11.18
Подскажите почему функция StringToWideChar может не работать в W


15-1192614681
исследователь
2007-10-17 13:51
2007.11.18
проблема с событием onSubmit


2-1193467708
VladimirK
2007-10-27 10:48
2007.11.18
Экспорт в MS Excel




   Наверх