Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как создать свой итем для TListBox на основе уже существующего?


97mik

Вопрос

Опубликовано

Как сделать Item на подобии статистики, то есть слева название, а справа показатель? И как сделать Item как кнопку, то есть чтобы при нажатии работал как Button?

-xhaeH-9Gt4.jpg

Рекомендуемые сообщения

  • 0
  • Администраторы
Опубликовано

А, всё, разобрался. Это просто надо менять стили.

 

Не до конца разобрались.

 

TListBoxItem - это обычные контролы, поэтому они так же допускают вставку других контролов друг в друга. Поэтому, чтобы добавить надпись сбоку, достаточно поместить TLabel внутрь итема, выровнить по правому краю и задать правы отступ (Margins.Right = 10). Так же для такой метки в FireMonkey предусмотрен специальный стиль "listboxitemdetaillabel". 

 

Обратите внимание, что таким образом можно разместить любой контрол.

 

Здесь следует четко разделить два подхода:

  1. Стилизация итемов. Если у нас лист бокс содержит большое число итемов, то лучше использовать подход с созданием отдельного стиля. Поскольку при прокрутке итемов TListBox выгружает стили для итемов, которые не видны на экране и тем самым экономит память. Однако, для большого числа итемов лучше использовать TListView, так как он адаптирован и оптимизирован для работы с большим количеством итемов. В то время, как TListBox рассчитан для создания небольших меню. 
  2. Непосредственное создание дополнительных контролов в итеме. Этот подход удобен в своем использовании и рекомендуется для варианта использования TListBox, как небольшое меню приложения.

Например у меня по такому рецепту получился вот такой вариант:

post-1-0-60343100-1390776666_thumb.jpgpost-1-0-68859800-1390777363_thumb.jpg

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...