Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.07;
Скачать: CL | DM;

Вниз

TImageList   Найти похожие ветки 

 
ванъка   (2008-07-27 13:46) [0]

Когда я указываю например у TListView.SmallImages = MyImageList, каким образом TListView во время работы получает иконки которые отрисовывает? Я смотрел в исходниках TListView но не смог понять.

У меня такая задача: я хочу перекрыть в наследнике ImageList то, что вызывает TListView при отрисовке иконок.


 
{RASkov} ©   (2008-07-27 14:17) [1]

По моему и TImageList и TListView - это "виндовые штуки" и отрисовка этих самых иконок происходит не в VCL....


 
Alucard   (2008-07-28 22:35) [2]

TImageList это обертка вокруг виндового объекта ImageList. TImageList.Handle соотвествует хендлу ImageList-а, что позволяет взаимодействовать с ним на уровне API. TListView - также обертка вокруг контрола ListView, однако его рисование можно переопределить, обрабатывая события OnCustomDraw<...>.

Не столь важно, как именно ListView получает картинки из ImageList-а, важно как он их рисует, а делает он это с помощью функции BitBlt, которую Вы можете использовать и сами, храня картинки в несвязанном TImageList-е и обрабатывая упомянутые выше события.

В этом смысле, возможно, имеет смысл делать наследника от TCustomImageList, чтобы не отягощать хранилище картинок со связью с обектом Windows. У меня нет перед собой VCL, но если верно помню, TCustomImageList еще не реализует Handle и является простым классом VCL.



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
9-1173540293
nobody_1988
2007-03-10 18:24
2008.09.07
многопоточность в гамах


2-1217146595
Newser
2008-07-27 12:16
2008.09.07
Как найти фрагмент текста (дата)?


2-1217367780
Неподарок
2008-07-30 01:43
2008.09.07
Документ как книга


2-1217058832
AlexanderMS
2008-07-26 11:53
2008.09.07
Проект без VCL требует SysUtils, хотя он нигде не указан...


3-1205310393
KPV-10k
2008-03-12 11:26
2008.09.07
Как узнать что запись захвачена другим пользователем (Firebird)