我试图在运行时更改ListBoxItem的字体颜色。我可以通过使用FontColor属性在设计时更改颜色而没有问题,但我需要在运行时更改字体颜色。以下示例不会更改字体颜色。
public function beforeExecuteRoute(Dispatcher $dispatcher)
{
return false; //stop operation
}
上面的代码应该使用定义的颜色向ListBox1添加一个项目,但它只是添加了具有默认字体颜色的项目。
答案 0 :(得分: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;