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

Вниз

Нестандартный ЛистВью   Найти похожие ветки 

 
Nous Mellon ©   (2004-04-29 22:04) [0]

Доброе время суток, господа форумчане. Возникла такая задача:
Нужно поместить на форму компонент типа ЛистВью(желательно именно его)
с несколькими столбцами. То есть получается нечно вроде таблицы.
Причем хотелось бы в зависимости от значения определенной переменной подсвечивать синим цветом определенную "ячейку" листвью. Естественно предопрделенных ф-ций для этого нет.
Я пробовал вот так:
lvK - TListView
Mrect - TRect
i1 - целая переменная обозначающая строку. В ней нужен второй сабитем.
Всего сабитема четыре.
Длина сабитема - 100.
  lvK.Canvas.Brush.Color := clAqua;
  MRect := lvK.Items[i1].DisplayRect(drBounds);
  MRect.Right := MRect.Right - 200;
  Mrect.Left := MRect.Left + 100;
  lvK.Canvas.FillRect(MRect);
  lvK.Canvas.Brush.Color := clWhite;
Данный код будучи помещенным в обработчик
lvKCustomDrawSubItem отлично закрашивает нужную ячейку - но вот беда текст,
который в ней был уже не отображается. Вопрос вот в чем: Возможно ли непосредственно на закрашенный сабитем нанести текст.
В принципе можно сделать FrameRect вместо FillRect но тогда у меня почему то прорисовываются не все края.
Буду рад любым конструктивным предложениям.

PS Проше прощения за нексолько корявый код :)


 
DVM ©   (2004-04-30 00:33) [1]

Попробуй свое закрашивание производить до отрисовки итема. Идеальное место WM_ERASEBKGND. Хотя можно и по-другому.


 
Игорь Шевченко ©   (2004-04-30 00:55) [2]


> vKCustomDrawSubItem


OnAdvancedCustomDrawSubItem ?


 
Nous Mellon ©   (2004-04-30 07:19) [3]


> Попробуй свое закрашивание производить до отрисовки итема.
> Идеальное место WM_ERASEBKGND. Хотя можно и по-другому.

Спасибо попробую.
> OnAdvancedCustomDrawSubItem ?

Нет без Advanced.
Или это предложение? Тогда благодарю и попробую так.. О результатах доложу


 
Nous Mellon ©   (2004-04-30 21:35) [4]

С Advancedom не получилось к сожалению.
То есть лучше не стало.
А вот перехват WM_EraseBkgnd дал кое-какой результат. FillRect не работает как надо, за то при использовании FrameRect отрисовываются все края.
Ну и то хорошо. Спасибо всем помогавшим.



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

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

Наверх




Память: 0.48 MB
Время: 0.051 c
3-1082314990
Lena19
2004-04-18 23:03
2004.05.16
читать строки отличные от активной


14-1083066558
SergP
2004-04-27 15:49
2004.05.16
HTML...Проблема. Может кто знает как ее лечить?


4-1080228728
Prov
2004-03-25 18:32
2004.05.16
SetWindowText - поменять Caption елементов управления


3-1082388213
volser
2004-04-19 19:23
2004.05.16
Как програмно узнать, установлен ли InterBase


7-1081025807
Kvic
2004-04-04 00:56
2004.05.16
Отслеживание запуска приложений