Создание конкретного пользовательского TListBoxItem с данным примером и проблемы со свойством fontColor
Может кто-нибудь, пожалуйста, направьте меня в правильном направлении. Я пытаюсь создать пользовательский элемент ListboxItem, используя Delphi XE4 для приложения iOS. Моя цель будет выглядеть примерно так, как показано на фотографии выше, где я сейчас застрял (рисунок ниже).
Мне удалось динамически сгенерировать ListBoxItem и вставить объект TLabel, однако я не могу изменить свойство fontColor TLabel на желаемый цвет. Я могу закодировать
TLabel.Fontcolor:= ClaBlue;
Но цвет возвращается к черному. Я бы хотел, чтобы это выглядело точно так же, как пример, который я привожу. У меня проблемы с изменением цвета шрифта вставленной TLabel и добавлением градиентного фона к каждому элементу списка. Я не знаю, нужно ли мне использовать "редактор стилей" или даже как. И да, я посмотрел на пример, включенный в Delphi/RAD Studio. Вот моя текущая кодировка ниже:
while XMLNode<>nil do begin
HeaderText := 'Part#: ' + XMLNode.ChildNodes['PARTNUM'].Text + Chr(9) + XMLNode.ChildNodes['VENDPARTNUM'].Text;
DetailText := '$' + XMLNode.ChildNodes['MD1_SELL_PRICE'].Text + ' /' + XMLNode.ChildNodes['UM1_PRICE_NAME'].Text + sLineBreak + 'Min: ' + XMLNode.ChildNodes['md2_from.MD2_MIN_QTY'].text + Chr(9) + 'On Hand: ' + XMLNode.ChildNodes['md2_from.MD2_ON_HAND_QTY'].text + Chr(9) + Label1.text ;
Form6.ListBox1.Items.Add(DetailText);
ListBoxItem:=Form6.ListBox1.ListItems[Form6.ListBox1.Items.Count-1];
ListBoxItem.StyleLookup:='listboxitembottomdetail';
ListBoxItem.WordWrap:=True;
ListBoxItem.Font.Size:= 8;
ListBoxItem.Height := 120;
TestLabel := TLabel.Create(self);
TestLabel.Text := HeaderText;
TestLabel.font.size := 20;
testLabel.FontColor := claBlue;
TestLabel.Width := form6.ListBox1.ClientWidth;
i := i +1;
XMLNode := XMLNode.NextSibling;
end;
Form6.ListBox1.EndUpdate;
Form6.Show;
1 ответ
Вы должны использовать книгу стилей, использовать образец CustomListBox, поставляемый с Delphi, чтобы узнать, как правильно использовать стили в Firemonkey.
Также не мешало бы прочитать некоторые официальные руководства по стилю Firemonkey для ознакомления.
например, настройка приложений FireMonkey с помощью стилей.
Это выглядит сложнее, чем вкратце, чтобы получить результат, который вы хотите:
- Доступ к дизайнеру стиля компонента
- Через окно структуры редактируйте / добавляйте / удаляйте и изменяйте элементы управления, в вашем случае это будет комбинация элементов управления TText, организованных в Tlayouts.
- После сохранения ваших изменений вы можете изменить цвет определенного элемента управления TText во время выполнения:
Item.StylesData['TestLabel.Color'] := TAlphaColors.Red;
(где Item является TListboxitem)
То, что вы пытаетесь достичь, не сложно, научитесь обращаться с дизайнером стилей с помощью практики, методом проб и ошибок, это не так сложно, как кажется.