在运行时更改列表框项目字体颜色

问题描述 投票:1回答:1

我正在尝试在运行时更改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添加项目,但它只是添加具有默认字体颜色的项目。

delphi firemonkey
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.