Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1118776999
Knoxville
2005-06-14 23:23
2005.07.11
Поиск папок


14-1118212041
Тульский
2005-06-08 10:27
2005.07.11
Интернет-распродажа военной техники


1-1119468499
kliff
2005-06-22 23:28
2005.07.11
Сохранение динамического массива


14-1118010887
Оля
2005-06-06 02:34
2005.07.11
СРОЧНО


14-1118828872
emfw
2005-06-15 13:47
2005.07.11
Вопросы




   Наверх