4

在此处输入图像描述
有人可以指导我正确的方向。我正在尝试使用 Delphi XE4 为 iOS 应用程序创建自定义 ListboxItem。我的目标输出将与上面的照片类似,因为我目前被困在这里(下图)。

在此处输入图像描述

我已经成功地动态生成了一个 ListBoxItem 并插入了一个 TLabel 对象,但是,我无法将 TLabel 的“fontColor”属性更改为所需的颜色。我可以编码

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;
4

1 回答 1

1

您必须使用样式书,使用 delphi 附带的CustomListBox示例来学习如何在 Firemonkey 中正确使用样式。

通读一些官方的 Firemonkey 样式指南以进行介绍
,例如Customizing FireMonkey Applications with Styles 也不会有什么坏处

它看起来更复杂,简而言之,产生你想要的结果:

  1. 访问组件的样式设计器
  2. 通过结构窗口编辑/添加/删除和修改控件,在您的情况下,它将是 Tlayouts 中组织的TText控件的组合
  3. 保存修改后,您可以在运行时更改特定 TText 控件的颜色:(Item.StylesData['TestLabel.Color'] := TAlphaColors.Red;其中 Item 是 TListboxitem )

你想要达到的目标并不难,通过练习、纯粹的反复试验来学习处理 Style Designer,它并不像看起来那么复杂。

于 2013-08-24T00:04:51.017 回答