#firemonkey #c builder #c builder-10.3-rio
Вопрос:
Как я могу выделить элементы в моем FMX TListBox
жирным шрифтом? Я сам ничего не могу найти ни в документации, ни в Интернете.
Комментарии:
1. Как вы уже заметили, для этого нет никаких условий. Для чего бы вы его использовали, если бы это было возможно? Возможно, есть какой-то другой способ добиться того же эффекта.
2. Я просто хочу, чтобы текст внутри списка было легче читать. И для этого жирный текст-лучший вариант для меня.
3. Я не работаю с FMX. Поддерживает ли он рисование элементов владельцем? Или размещение элементов управления внутри каждого элемента, например, a
TLabel
Font.Style
, для которого установлено значениеfsBold
?
Ответ №1:
Вам нужно задать два свойства для рассматриваемого тлистита. Первая строка кода ниже позволяет вам задать свойства шрифта для этого элемента списка, вместо того, чтобы стиль диктовал свойства шрифта (если вы пропустите этот шаг, следующий шаг не повлияет). Во второй строке этот элемент списка выделяется жирным шрифтом (где, конечно, x-это индекс в списке, который должен быть выделен жирным шрифтом).
ListBox1.ListItems[x].StyledSettings:=[];
ListBox1.ListItems[x].Font.Style:=[TFontStyle.fsBold];
Ответ №2:
Благодаря Греггу, который дал рабочий ответ для delphi, я помещу здесь версию C Builder.
Я сделал цикл над своим списком с количеством элементов, и это не влияет на скорость загрузки списка (в моем случае около 4000 элементов), так что это хорошее решение, по крайней мере, для меня.
ListBox->ListItems[x]->StyledSettings = ListBox->ListItems[x]->StyledSettings >> TStyledSetting::Style;
ListBox->ListItems[x]->Font->Style = ListBox->ListItems[x]->Font->Style << fsBold;
Ответ №3:
Вы можете использовать пользовательскую тему для элементов TListBoxItems. Создайте его правой кнопкой мыши в списке.
Комментарии:
1. Я должен был уточнить это, но я получаю элементы для отображения в списке из базы данных.
2. Это не имеет значения. Вы создаете отдельный стиль, который сам по себе применяется ко всем элементам.