Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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, таких примеров в сети есть много, я не стану здесь подробно писать).


Наверх

Титульная страница Поиск, карта сайта Написать письмо