![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Delphi XE7
Пользователь
Регистрация: 26.07.2010
Сообщений: 74
|
![]()
На основе данной темы (http://programmersforum.ru/showthread.php?t=174029) сделал код для отрисовки списка ListView:
Код:
![]() Результат немного не устроил в плане изменения цвета текста всей строки. Нужно изменить цвет только 3-й колонки. Читал тему (http://programmersforum.ru/showthread.php?t=6090), где схожая проблема, но при данном решении сильно тормозит список. Пытался так же описывать отдельно CustomDrawItem и CustomDrawSubItem, но снова ничего не помогло, SubItems просто невидны. Последний раз редактировалось JoLan; 05.03.2012 в 15:26. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А в чем проблема? Sender.Canvas.Font.Color и используй для изменения цвета текста в колонках. Для колонки 3 делай как нужно, для остальных белый
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 | |
Delphi XE7
Пользователь
Регистрация: 26.07.2010
Сообщений: 74
|
![]() Цитата:
![]() И еще 1 неприятная вещь: при наведении курсора на выделенную строку через 1 секунду область под курсором и сам Item закрашиваются ![]() Код отрисовки Item: Код:
Код:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
В примере из #1 для прорисовки текста Rect меняете в цикле. Что мешает в этом же обработчике в этом же цикле и фон прорисовывать разным цветом?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Delphi XE7
Пользователь
Регистрация: 26.07.2010
Сообщений: 74
|
![]()
Тогда по событию CustomDrawSubItem не рисуется текст. Выводить текст в SubItems по отрисовке Item - получится пример #1. Замкнутый круг.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
GetColor(S) из #1 используйте только для прорисовки текста в нужной колонке, в остальных - белый в вашем случае. Это же можно определить по индексу субитема. Тогда CustomDrawItem будет достаточно без AdvancedCustomDraw. И в чем необходимость FillRect в цикле? Фон уже прорисован выше по коду
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 09.03.2012 в 12:52. |
![]() |
![]() |
![]() |
#7 |
Delphi XE7
Пользователь
Регистрация: 26.07.2010
Сообщений: 74
|
![]() Код:
Это уже вопрос говнокодности. Последний раз редактировалось JoLan; 10.03.2012 в 16:00. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Почему у меня получается
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Delphi XE7
Пользователь
Регистрация: 26.07.2010
Сообщений: 74
|
![]()
Спасибо огромное. Через DrawItem получилось.
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 09.02.2012
Сообщений: 7
|
![]()
Доброго всем времени суток!
Код:
Код:
Вопрос: как избавиться? Код:
Заранее Благодарен. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SubItems.Delete | bulldog5293 | Общие вопросы Delphi | 6 | 09.11.2010 11:01 |
ListView SubItems | mutabor | Компоненты Delphi | 0 | 19.08.2010 14:38 |
вместо шрифтов рисуются иероглифы | Sharley | Общие вопросы Delphi | 4 | 27.04.2008 18:41 |