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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2011, 20:26   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Сообщение Закрасить SubItem[1] цветом

Помогите пожалуйста в ListView закрасить SubItem[1] любым цветом.
Shouldercannon вне форума Ответить с цитированием
Старый 05.07.2011, 20:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.ListViewDrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var xColor: TColor;
    xRect: TRect;
    i: Integer;
begin
  if (Sender.Selected=Item) and Sender.Focused then xColor:=clActiveCaption
  else if Sender.Selected=Item then xColor:=clBtnFace
  else xColor:=clWindow;
  Sender.Canvas.Brush.Color:=xColor;
  Sender.Canvas.FillRect(Item.DisplayRect(drLabel));
  if (Sender.Selected=Item) and Sender.Focused
    then Sender.Canvas.Font.Color:=clWindow
    else Sender.Canvas.Font.Color:=clWindowText;
  xRect:=Item.DisplayRect(drLabel);
  Sender.Canvas.TextRect(xRect,xRect.Left+2,xRect.Top,Item.Caption);
  for i:=1 to TListView(Sender).Columns.Count-1 do begin
    xRect.Left:=xRect.Right+1;
    xRect.Right:=xRect.Left+TListView(Sender).Columns.Items[i].Width-1;
    if i=2 then Sender.Canvas.Brush.Color:=clRed else Sender.Canvas.Brush.Color:=xColor;
    Sender.Canvas.FillRect(xRect);
    Sender.Canvas.TextRect(xRect,xRect.Left+5,xRect.Top,Item.SubItems[i-1]);
  end;
end;
3 колонки. 2 субитема, OwnerDraw:=True; ViewStyle:=vsReport
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.07.2011, 01:27   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthread.php?t=63802
гляньте, в частности мои вложения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить цвет subitem-а в ListView zver777 Общие вопросы Delphi 4 28.07.2010 00:56
ListView как добавить SubItem AGEETO Помощь студентам 1 14.06.2010 12:20
Скопировать содержимое SubItem Shouldercannon Общие вопросы Delphi 1 19.05.2010 21:35
vba закрасить все циклы синим цветом Berckyt Помощь студентам 0 19.04.2009 14:21
хочу закрасить розовым цветом(си) Барби Помощь студентам 1 25.05.2008 13:58