Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2009, 19:24
Аватар для Crabber
Crabber Crabber вне форума
Прохожий
 
Регистрация: 14.10.2009
Сообщения: 8
Версия Delphi: 7
Репутация: 10
Вопрос Цвет текста в ListView


Здравствуйте, подскажите пожалуйста можно ли каким-то образом изменять цвет текста, который выводится в ListView?

Например:

Есть следующая конструкция ListView с ViewStyle = vsReport;

Название элемента | Значение 1 | Значение 2 |
------------------------------------------------
Элемент 1 | 0,0005 | 0,005 |
Элемент 2 | 0,4 | 0,66 |
............ | ......... | ........ |

Нужно зделать так:
1) ЕСЛИ Значение 2 больше Значения 1 ТО цвет_текста = clRed;
2) ЕСЛИ Значение 2 меньше Значения 1 ТО цвет_текста = clBlue;
3) ЕСЛИ Значение 2 равно Значению 1 ТО цвет_текста = clGreen;

Подскажите пожалуйста как это можно реализовать средствами Delphi?
Заранее большое Вам спасибо!
Ответить с цитированием
  #2  
Старый 15.10.2009, 12:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

OwnerDraw итема спасет отца русской демократии.
Ответить с цитированием
  #3  
Старый 17.10.2009, 02:05
Аватар для Crabber
Crabber Crabber вне форума
Прохожий
 
Регистрация: 14.10.2009
Сообщения: 8
Версия Delphi: 7
Репутация: 10
Восклицание

Я не знаю как это сделать. Впервые работаю с этим компонентом. Вы бы не могли детальнее написать как выглядит строка, которая будет изменять значение цвета текста, например в ListView.Items[0].SubItems[0] по событию нажатия на Button. Это нужно для того, чтобы юзер обратил внимание именно на то место в ListView.

Нашел только такое решение:

procedure TMAIN_FORM.ListViewCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
with ListView.Canvas.Brush do
begin
case Item.Index of
0: Color := clYellow;
1: Color := clGreen;
2: Color := clRed;
end;
end;
end;


Но оно мне совсем не подходит.
Ответить с цитированием
  #4  
Старый 17.10.2009, 03:05
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Так устроит?
Код:
procedure TForm33.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
 if not Assigned(Item) then Exit;
 if StrToFloat(Item.SubItems.Strings[0]) < StrToFloat(Item.SubItems.Strings[1])
 then Sender.Canvas.Font.Color := clRed;
 if StrToFloat(Item.SubItems.Strings[0]) > StrToFloat(Item.SubItems.Strings[1])
 then Sender.Canvas.Font.Color := clBlue;
 if StrToFloat(Item.SubItems.Strings[0]) = StrToFloat(Item.SubItems.Strings[1])
 then Sender.Canvas.Font.Color := clGreen;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 17.10.2009, 15:40
Аватар для Crabber
Crabber Crabber вне форума
Прохожий
 
Регистрация: 14.10.2009
Сообщения: 8
Версия Delphi: 7
Репутация: 10
По умолчанию

Да, это именно то, что нужно!!! Спасибо тебе огромное!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter