Главная страница
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.47 MB
Время: 0.058 c
1-1083415414
Jiurasdfgfr
2004-05-01 16:43
2004.05.16
Как в StringGrid вызвать OnDrawCell?


3-1082482969
neVIP.
2004-04-20 21:42
2004.05.16
Посоветуйте с SQL запросом...


14-1082974344
Chainik
2004-04-26 14:12
2004.05.16
Отключение планировщика заданий


9-1071754582
zzet
2003-12-18 16:36
2004.05.16
FullScreen OpenGl


3-1082451811
ivs
2004-04-20 13:03
2004.05.16
ora-01041: hostdef расширение не существует