Главная страница
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.037 c
4-1080239386
Константин
2004-03-25 21:29
2004.05.16
Как запустить из процесса другую программу?


6-1080421878
Rezya
2004-03-28 00:11
2004.05.16
Перевод Простого сокета в режим перехвата всего трафика


1-1083193645
Star-ko
2004-04-29 03:07
2004.05.16
Редактор с подсветкой.


3-1082105391
Chaynik
2004-04-16 12:49
2004.05.16
Работа с TQuery


3-1082128389
начинаю
2004-04-16 19:13
2004.05.16
про TIBTable