Delphi无法更改列表框项文本大小

时间:2017-04-20 21:38:09

标签: delphi listbox firemonkey

我的表单中有一个TListBox,我在运行时添加项目如下:

ListBox1.Clear;

//don't care about sol, it is a dynamic array with a size between 1 and 6
ListBox1.BeginUpdate;
 for i := Low(sol) to High(sol) do
  begin

   tmp := TListBoxItem.Create(ListBox1);
   tmp.Parent := ListBox1;
   tmp.Selectable := false;
   tmp.TextSettings.Font.Size := 30; //problem here, it doesn't change the text size
   tmp.Text := 'some text';

  end;
 ListBox1.EndUpdate;

此处tmp变量为TListBoxItem。一切正常,因为我看到当按下按钮时,列表框被添加到TListBox中。

问题是我无法更改文字大小。任何的想法? 我想我可能必须将tmp的StyledSettings设置为false,但我无法做到。

1 个答案:

答案 0 :(得分:6)

在阅读了您的问题和对您的问题的评论后,您似乎正在尝试设置您创建的ListBoxItem的字体大小,而不是ListBoxItem本身的大小。那么请你编辑你的问题(标题)来反映这个问题吗?

您的问题的答案确实在于更改ListBoxItem的StyledSetting属性 - 如下所示:

tmp.TextSettings.Font.Size := 30;
tmp.StyledSettings:=[TStyledSetting.Family,TStyledSetting.Style,TStyledSetting.FontColor,TStyledSetting.Other];

您会注意到我已从TStyledSetting.Size的{​​{1}}中取出StyledSettings。另请注意,您还必须以编程方式处理ListBoxItem的高度。