3

我正在学习 FireMonkey 样式 - 我的主要参考资料在这里。我用简单的标签和形状尝试过的一切都很好,但我现在正在使用 TListBox 并尝试做两件事:

  1. 设置 TListBox 中项目的字体。
  2. 移除它的边框(它在 TCalloutPanel 中与客户端对齐)。

我正在使用在表单上创建样书的方法,右键单击控件并选择“编辑自定义样式”。(不过,我同样很乐意进行运行时更改)。

我对字体的唯一成功是创建了多个 TListBoxItem 并使用它们各自的文本设置。他们没有办法像 VCL 那样继承父设置吗?我真的很想像在 VCL 中一样添加列表框项:

 ListBox1.Items.Add( 'text' )

但我看不到获取创建的内部 TListBoxItem 数组的运行时方式。

另一个问题是我看不到删除边框矩形的方法。一个普通的矩形很容易——它有一个笔划——但是在样书中挖掘 TListBox 的所有布局选项时,我在任何地方都看不到笔划。

我正在使用 XE7。我错过了什么吗?

谢谢你的帮助。

4

1 回答 1

3

不能保证背景一定是TRectangle类型。

当您选择“编辑自定义样式”选项时,您将编辑平台默认样式,该样式始终为 Windows 样式。(也就是说,如果尚未加载自定义样式)

他们决定处理平台默认样式的方式是拍摄本机控件的快照并将它们合并到一个图像中,他们可以从中单独获取链接到特定控件。该图像在样式中可供您修改。

  1. 设置列表框中项目的字体

    右键单击项目并选择编辑自定义样式,一个新的样式对象被添加到您的样书中。对于列表框项目,它应该被称为listboxitem1style1altho numbers 可以变化。(名称来自此对象的默认样式,即listboxitemstyle)。

    这是您要在样书中编辑的样式对象。完成后,关闭样书并将StyleLookup每个 ListBox 项的属性更改为listboxitem1style1. 最好在运行时将值分配给属性。
    ListBoxItem1.StyleLookup := 'listboxitem1style1';

  2. 从 TListBox 中删除边框

    在您的样书中加载自定义样式后,使用样式设计器导航到ListBox1Style1 > background : SourceLink property并编辑SourceRect分配的 BitmapLink 对象。基本上,您将矩形膨胀 -2 以消除边框。

在此处输入图像描述

于 2014-10-20T18:07:03.590 回答