Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в заголовок столбца вставить прозрачную картику?


RTWolf ©   (2004-05-19 10:41:00) 

Когда я использую прозрачную картинку то она рисуется на черном фоне. Этот вопрос можно решить двумя способами, но у меня не один не работает:
1) Можно всеже както помучатся и подобрав нужные константы сделать это
2) А можно и так: определяем цвет фона заголовка столбца и рисуем на временной канве на этом фоне всю картинку, а потом уже приделываем к списку.  
А кстати забыл сказать, если я использую средства KOL то все отлично, но почемутовместе с картинкой в заголовке, появляется и картинка в самих Item'ах. А если убрать картинку в Итеме то надпись получается смещенной. Это не есть хорошо!
Я делаю так:
У меня тут сразу же с сортировкой

procedure TWinStatView.SetColumnBitmap( LV: PControl; SortAscend: Boolean; ColumnIdx: Integer );
var
 HdItem: THdItem;
 i: Integer;
begin
 for i := 0 to LV.LVColCount-1 do begin
   HdItem.Mask := HDI_FORMAT;
   SendMessage( GetDlgItem( LV.Handle, 0 ), HDM_GETITEM, I, Longint( @HdItem ) );
   HdItem.Mask := HDI_BITMAP or HDI_FORMAT;

   if i = ColumnIdx then begin
     if SortAscend then HdItem.hbm := LoadBitmap( hInstance, 'LV_DOWN')
     else Hditem.hbm := LoadBitmap( hInstance, 'LV_UP');
     HdItem.fmt := HdItem.fmt or HDF_BITMAP {or HDF_BITMAP_ON_RIGHT};
   end else begin
     HdItem.hbm := LoadBitmap( hInstance, 'LV_DOWN');
     HdItem.fmt := HdItem.fmt and not ( HDF_BITMAP {or HDF_BITMAP_ON_RIGHT});
   end;

   SendMessage( GetDlgItem( LV.Handle, 0 ), HDM_SETITEM, I, Longint( @HdItem ) );
 end;
end;


AlexZ_CRC   (2004-05-22 20:03:00) [1]

R 255
G 0
B 255
Системный прозрачный цвет, если пригодиться ;)


SPeller   (2004-05-22 15:40:00) [2]

Прозрачность - это когда берется цвет фона и заменяют им определенный цвет в картинке.


RTWolf   (2004-05-22 13:02:00) [3]

Все бы хоршо на WinXP когда стоит классическая тема раб. стола, там цвета совпадают с системными, но если стоит любая другая тема то цвет отличается


Gandalf   (2004-05-21 10:35:00) [4]

Это один из системных цветов - какой точно не помню... но их не так много.


RTWolf   (2004-05-21 09:55:00) [5]

А как узнать цвет фона заголовка?


Bezols   (2004-05-19 19:29:00) [6]

а ты используй тогда картинку с фоном, и установить цвет прозрачности как цвет фона


RTWolf   (2004-05-19 14:58:00) [7]

Я так и делал, но результат не тот


Bezols   (2004-05-19 11:38:00) [8]

А ты картинку сначала в ImageList загрузи, а потом навежи его к ListView

у ImageLista есть такая штука

ImageList2.AddMasked(BMP.Handle, clFuchsia);


Наверх

Титульная страница Поиск, карта сайта Написать письмо