在运行时更改列表框项目字体颜色
Changing Listbox item font color at runtime
我正在尝试在运行时更改 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 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;
我正在尝试在运行时更改 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 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;