![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListView
serhiyiv © (2009-12-19 17:47:00)Здравствуйте. Подскажите пожалуйста как можно решить такую проблему:
1. В ListView все айтемы рисуються вручную OnCustomDrawItem дело в том, что если количество айтемов небольшое то все работает нормально, но когда их количество где то 1000-2000 то при прокрутке списка до средины тоже в принципе все нормально, а если прокручивать список дальшо, то чем ближе к концу списка тем больше начинает тормозить. Что можно сделать?
Рисую так
ListView1.SmallImages.Draw(Sender.Canvas,rect.Left+21,rect.Top+2,Item.ImageIndex);
Sender.Canvas.TextOut(rect3.Left-3,rect3.Top-1,Item.Caption);
2. Допустим рисую текст айтема черным цветом. Как вывести еще один текст для того же айтема только другим цветом?
Вывожу первый текст
DefaultDraw:=false;
Sender.Canvas.Font.Color:=clWhite;
Sender.Canvas.TextOut(rect3.Left-3,rect3.Top+3,Item.Caption);
Если продублировать етот код но с другим цветом то рисует и первый текст и второй тем же цветом?
KilkennyCat (2009-12-20 23:39:00) [1]
> И как насчет торого вопроса?
ссылку смотри.
> Хоть приблезительно как ето все реализировано
во-первых, отрисовывается только то, что нужно. Нафига пользователю отрисовывать те объекты, которые он не видит?
serhiyiv (2009-12-20 22:41:00) [2]Спасибо за советы, но что там странного? И как насчет торого вопроса? и еще подскажите как вот в 7 винде реализирована возможность увеличивать и уменьшать размер миниатюр (фоток) так что ето делаеться нормально и без особой нагрузки. Просто если создавать миниатюру каждый раз загружая основную картинку из файла и прикрепить ету процедуру к TrackBar то при изменении TrackBar а ето капец как тормозит. Хоть приблезительно как ето все реализировано ?
Amoeba (2009-12-20 22:23:00) [3]
> но когда их количество где то 1000-2000 то при прокрутке
> списка
Столько прокручивать только злейшему врагу можно пожелать ...
Юрий Зотов (2009-12-20 18:33:00) [4]> 1000-2000...
> при прокрутке списка...
Бедняга юзер...
KilkennyCat (2009-12-20 18:25:00) [5]
> KilkennyCat © (20.12.09 18:21) [1]
уточню, странная только
> ListView1.SmallImages.Draw(Sender.Canvas,rect.Left+21,rect.
> Top+2,Item.ImageIndex);
KilkennyCat (2009-12-20 18:24:00) [6]http://www.sql.ru/forum/actualthread.aspx?tid=245778
KilkennyCat (2009-12-20 18:21:00) [7]если действительно рисовать в OnCustomDrawItem то нет проблем.
откуда там взялась такая странная конструкция: ListView1.SmallImages.Draw(Sender.Canvas,rect.Left+21,rect.Top+2,Item.ImageIndex);
Sender.Canvas.TextOut(rect3.Left-3,rect3.Top-1,Item.Caption); ?