Главная страница
    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.45 MB
Время: 0.036 c
14-1082825195
PaRL
2004-04-24 20:46
2004.05.16
Образование


3-1082445302
TL
2004-04-20 11:15
2004.05.16
Query


3-1082704507
pet600
2004-04-23 11:15
2004.05.16
Oracle 9 + dbExpress (D7)


4-1080756486
Brun
2004-03-31 22:08
2004.05.16
Как мне убрать задачу из tasklis (под NT)


1-1083311423
M@X
2004-04-30 11:50
2004.05.16
Помогите перевести на паскаль с Си





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский