Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: 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 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1193534997
San1712
2007-10-28 04:29
2007.11.18
Как удалить запись типа TSearchRec ?


2-1192608154
Ksander
2007-10-17 12:02
2007.11.18
TreeView


2-1193052032
плиз хелп!
2007-10-22 15:20
2007.11.18
CheckBox зацикливается


2-1193428551
sdaf
2007-10-26 23:55
2007.11.18
неполучаеться убрать атрибут скрытый


15-1192088145
Azize
2007-10-11 11:35
2007.11.18
В США запускают сеть Internet 2