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

Delphi 在运行时更改列表框项目字体颜色,delphi,firemonkey,Delphi,Firemonkey,我试图在运行时更改ListBoxItem的字体颜色。通过使用FontColor属性,我可以在设计时毫无问题地更改颜色,但我需要在运行时更改字体颜色。下面的示例没有更改字体颜色 var ListBoxItem : TListboxItem; begin ListBoxItem := TlistBoxItem.Create(ListBox1); ListBoxItem.Text := Edit1.Text; ListBoxItem.ItemData.Detail :

我试图在运行时更改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 10.1测试的:

要同时更改普通和详细字体颜色,您可以将
StyleLookup
属性与您自己的自定义样式一起使用

在设计时,在主窗体中创建一个
TListBox
并添加一个
TListBoxItem
。 转到
TListBoxItem
的属性,并将
StyleLookup
设置为listboxitembottomdetail。在此之后,右键单击
TListBoxItem
并选择
编辑自定义样式…

现在在样式设计器中打开树
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;

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