Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2015, 16:37   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
Вопрос ListView. Изменить цвет текста SubItems[0]

Доброго времени суток!
Есть ListView. Заполняется следующим образом:
Код:
var
  Item: TListItem;
begin
  Item := LVUsers.Items.Add;
  Item.Caption := '';
  Item.SubItems.Add('Nick');
  Item.SubItems.Add('ID');
  Item.SubItems.Add('1'); // Статус
Хочу изменять цвет текста SubItems[0] (Nick) в зависимости от значения статуса.
Делаю так
Код:
procedure TForm26.LVUsersCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.SubItems[2] = '0' then Sender.Canvas.Font.Color := $000000E6 else Sender.Canvas.Font.Color := clBlue;
end;
Тут возникли вопросы:
1. Для чего нужно CustomDrawSubItem
2. Почему постоянно (каждую секунду) в Runtime идёт обращение к
Код:
if Item.SubItems[2] = '0' then Sender.Canvas.Font.Color := $000000E6 else Sender.Canvas.Font.Color := clBlue;
после добавления записи. Приложение не подвисает, но всё равно напрягает этот факт.
Shouldercannon вне форума Ответить с цитированием
Старый 04.03.2015, 18:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Для чего нужно CustomDrawSubItem
Цитата:
Occurs when a subitem must be rendered in an owner-draw list view.
Тут еще поможет чтение про свойство OwnerDraw.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.03.2015, 21:08   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Ответ на второй вопрос.
Обращение идёт потому-что курсором водим по данным а ListView или скроллинг списка делаем делаем

Последний раз редактировалось Shouldercannon; 04.03.2015 в 21:20.
Shouldercannon вне форума Ответить с цитированием
Старый 04.03.2015, 21:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Отрисовка. И почему ты решил что именно каждую секунду? Скрой окно. Для эксперимента вниз за экран сдвинь эти строки, чтоб их не было видно - на них не будет тратиться время выполнения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер(изменить цвет текста на белый) zhayr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 20.12.2014 06:58
Изменить цвет текста кодом Legionevil Microsoft Office Excel 2 25.09.2011 18:11
Изменить цвет subitem-а в ListView zver777 Общие вопросы Delphi 4 28.07.2010 00:56
Изменить цвет части строки в ListView zver777 Общие вопросы Delphi 5 21.06.2010 14:07