Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

TListView и цвета отдельных итемов   Найти похожие ветки 

 
$HiC0   (2005-06-23 16:34) [0]

Добрый день!
Искал, может плохо, но пока не нашел ответа казалось-бы на очень простой вопрос.
У меня есть список - набор цифр, который я размещаю столбиком в TListView. В ходе работы программы необходимо подсветить некоторые цифры из набора (выделить их другим цветом или шрифтом, а лучше и тем и другим). Изначально пытался сделать это в ListBox"е, но интуитивно понял что у него нет соответствующих свойств и методов, стал смотреть в сторону ListView. Хотел сделать что-то вроде:
ListView1.Items[i].Font.Color := clRed;
ListView1.Items[i].Font.Bold := True;
Но не тут то было :(
Подскажите как быть?
Заранее спасибо.


 
-=XP=- ©   (2005-06-23 16:38) [1]

но интуитивно понял что у него нет соответствующих свойств и методов

Неправда Ваша.
OnDrawItem()


 
rOOse ©   (2005-06-23 16:43) [2]

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


 
Amoeba ©   (2005-06-23 16:48) [3]


> пока не нашел ответа казалось-бы на очень простой вопрос

Вопрос, как раз далеко не простой.

Если устроит вариант с ListBox, то есть такой компонент THTMLListBox. Там такое делается легко (он и предназначен для подобных задач). Найдешь его на http://www.tmssoftware.com/
(придется только немножко поднапрячься на навигацией по сайту, чтобы увидеть его описание с картинкой).
А вот ссылка на закачку: http://www.tmssoftware.com/HTMLISTB.ZIP
А это на инструкцию, как делать форматирование: http://www.tmssoftware.com/minihtml.htm


 
$HiC0   (2005-06-23 16:48) [4]

Т.е. какие итемы подсвечивать я должен определять case-ом или какм-либо иным образом внутри этого метода? А что делать если этот лист-бох находится на мди-детеныше, который в свою очередь служит только для отображения и никакими вычислительными способностями не обладает. Вычисления и собственно результат этих вычислений получается во вне. В голову приходит только опубликовать событие DrawItem и потом в юните-вычислителе подписаться на него. Это не очень жестоко? Неужели нету более простого способа? Или я что-то не так понял? :(


 
$HiC0   (2005-06-23 16:52) [5]

Да в предыдущем посте я был прав :)) Хе... уже не могу писать нормальный код на Delphi после двухлетней работы с C#. Зарекаюсь больше на нем писать, хе... хотя у дотНета тоже своих заморочек хватает :)
2Amoeba
Спасибо! Сейчас посмотрю!



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.702 c
4-1115811710
MooSE
2005-05-11 15:41
2005.07.11
Чтение BMP-файла


1-1118902502
Магнум
2005-06-16 10:15
2005.07.11
TListView and "Array index out of bounds"


14-1118742776
vk
2005-06-14 13:52
2005.07.11
Учебная DELPHI


14-1118732272
reticon
2005-06-14 10:57
2005.07.11
Не резольвятся адреса при пинге....


9-1111903736
Yegorchic
2005-03-27 10:08
2005.07.11
Список обьекты в GLScene