Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.209 c
8-1076946984
Grinder
2004-02-16 18:56
2004.05.16
Проиграть мелодию 10 раз


7-1081003358
CAHEK
2004-04-03 18:42
2004.05.16
Как из Винды в проге открыть файл???


1-1083228255
Senator
2004-04-29 12:44
2004.05.16
MDI


1-1083070280
killer
2004-04-27 16:51
2004.05.16
Scrolling в StringList


4-1080732603
rimdl
2004-03-31 15:30
2004.05.16
Hooks





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский