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

Вниз

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

 
serhiyiv ©   (2009-12-19 17:47) [0]

Здравствуйте. Подскажите пожалуйста как можно решить такую проблему:
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 18:21) [1]

если действительно рисовать в 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); ?


 
KilkennyCat ©   (2009-12-20 18:24) [2]

http://www.sql.ru/forum/actualthread.aspx?tid=245778


 
KilkennyCat ©   (2009-12-20 18:25) [3]


> KilkennyCat ©   (20.12.09 18:21) [1]

уточню, странная только
> ListView1.SmallImages.Draw(Sender.Canvas,rect.Left+21,rect.
> Top+2,Item.ImageIndex);


 
Юрий Зотов ©   (2009-12-20 18:33) [4]

> 1000-2000...
> при прокрутке списка...  

Бедняга юзер...


 
Amoeba ©   (2009-12-20 22:23) [5]


> но когда их количество где то 1000-2000 то при прокрутке
> списка

Столько прокручивать только злейшему врагу можно пожелать ...


 
serhiyiv ©   (2009-12-20 22:41) [6]

Спасибо за советы, но что там странного? И как насчет торого вопроса? и  еще подскажите как вот в 7 винде реализирована возможность увеличивать и уменьшать размер миниатюр (фоток) так что ето делаеться нормально и без особой нагрузки. Просто если создавать миниатюру каждый раз загружая основную картинку из файла и прикрепить ету процедуру к TrackBar то при изменении TrackBar а ето капец как тормозит. Хоть приблезительно как ето все реализировано ?


 
KilkennyCat ©   (2009-12-20 23:39) [7]


> И как насчет торого вопроса?

ссылку смотри.

> Хоть приблезительно как ето все реализировано

во-первых, отрисовывается только то, что нужно. Нафига пользователю отрисовывать те объекты, которые он не видит?



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1260985904
serko
2009-12-16 20:51
2010.02.21
Появляются пробелы в полях...


2-1261394560
valussev@mail.ru
2009-12-21 14:22
2010.02.21
часть битмапа


2-1261473957
pg81
2009-12-22 12:25
2010.02.21
Как передать какртинку и получить картику(не ресурс) из dll?


4-1229186518
SCL
2008-12-13 19:41
2010.02.21
Как мне запретить завершение моего процесса из диспетчера задач?


15-1259928321
ВадимММ
2009-12-04 15:05
2010.02.21
Сужение цветов