Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 04.03.2015, 16:37   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,815
Вопрос 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,840
По умолчанию

Цитата:
Для чего нужно 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,815
По умолчанию

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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер(изменить цвет текста на белый) 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 17:11
Изменить цвет subitem-а в ListView zver777 Общие вопросы Delphi 4 27.07.2010 23:56
Изменить цвет части строки в ListView zver777 Общие вопросы Delphi 5 21.06.2010 13:07


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840