Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизНестандартный ЛистВью Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c