【问题标题】:Changing Listbox item font color at runtime在运行时更改列表框项目字体颜色
【发布时间】:2017-12-10 20:06:56
【问题描述】:

我正在尝试在运行时更改 ListBoxItem 的字体颜色。通过使用 FontColor 属性,我可以在设计时毫无问题地更改颜色,但我需要在运行时更改字体颜色。下面的示例没有更改字体颜色。

var
    ListBoxItem : TListboxItem;
begin
    ListBoxItem := TlistBoxItem.Create(ListBox1);

    ListBoxItem.Text := Edit1.Text;
    ListBoxItem.ItemData.Detail := Edit2.Text;
    ListBoxItem.StyleLookup := 'listboxitembottomdetail';
    ListBoxItem.TextSettings.FontColor := TAlphaColorRec.Blue;
    ListBoxItem.Height := 34;
    ListBox1.AddObject(ListBoxitem);

end;

上面的代码应该使用定义的颜色向 ListBox1 添加一个项目,但它只是使用默认字体颜色添加项目。

【问题讨论】:

  • 添加ListBoxItem.StyledSettings := ListBoxItem.StyledSettings - [TStyledSetting.FontColor];

标签: delphi firemonkey


【解决方案1】:

以下是针对 Delphi 10.1 Berlin 测试的

为了同时更改普通和细节字体颜色,您可以使用 StyleLookup 属性和您自己的自定义样式。

在设计时在您的主窗体中创建一个TListBox 并添加一个TListBoxItem。 转到TListBoxItem 的属性并将StyleLookup 设置为listboxitembottomdetail。在此之后右键单击TListBoxItem 并选择Edit custom style...

现在在样式设计师中打开树ListBoxItem1Style1。 在这里您可以找到文本和详细信息。可以将字体颜色调整为您想要的任何颜色。 确保保存。

然后在添加样式后,您可以将代码调整为如下所示:

var
    ListBoxItem : TListboxItem;
begin
    ListBoxItem := TListBoxItem.Create(ListBox1);
    ListBoxItem.Text := Edit1.Text;
    ListBoxItem.ItemData.Detail := Edit2.Text;
    ListBoxItem.StyleLookup := 'ListBoxItem1Style1';
    ListBoxItem.Height := 34;
    ListBox1.AddObject(ListBoxitem);
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2010-10-28
    • 2011-11-22
    • 1970-01-01
    • 2016-08-23
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多