如何从FireMonkey TListBox控件中删除边框线?

时间:2014-10-20 15:21:48

标签: delphi firemonkey tlistbox firemonkey-style

我正在学习FireMonkey样式 - 我的主要参考是here。我用简单的标签和形状尝试的一切都运行良好,但我现在正在使用TListBox并尝试做两件事:

  1. 设置TListBox中的项目字体。
  2. 删除其边框(它的客户端在TCalloutPanel中对齐)。
  3. 我正在使用在表单上创建样书的方法,右键单击该控件并选择“编辑自定义样式”。 (尽管如此,我也很乐意进行运行时更改。)

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

     ListBox1.Items.Add( 'text' )
    

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

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

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

    感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

无法保证背景为TRectangle类型。

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

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

  1. 设置ListBox中的项目字体

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

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

  2. 从TListBox中删除边框

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

  3. enter image description here