![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListBox [D7, XP]
TimScorp © (2006-02-22 23:43:00)Доброго времени суток!!!
Вопрос в следующем: можно ли в ListBox'е разные строки писать различными шрифтами, типа:
Выбор 1
Выбор 2
и т.д.
если можно то как???
С уважением TimScorp.
Жуков Олег (2006-02-23 03:01:00) [1]В ListBox имеется возможность сопоставить и запомнить для каждой строки ссылку на произвольный объект (Items.Objects). Эту возможность наверно и целесообразно использовать для сохранения шрифта для конкретной строчки. Разумеется о создании объектов TFont и об их корректном удалении ты должен заботиться сам. Но, скорее всего задача проще и требуется некоторое фиксированное количество способов (стилей) отображения строки. В этом случае каждому из стилей сопоставляется целая константа, а в Items.Objects[Index] пишется номер стиля отображения. При этом создавать объекты и освобождать память не надо, т.к. тип TObject совместим с Integer (и по сути им же и является).
Далее, необходимо установить ListBox.Style в lbOwnerDraw написать свой обработчик отрисовки Item (OnDrawItem), и в нём реализовать алгоритм рисования прямоугольника выделения (при необходимости), вывода текста нужным шрифтом, картинок (используя методы и свойтсва ListBox.Canvas, таких примеров в сети есть много, я не стану здесь подробно писать).