我的表单中有一个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,但我无法做到。
答案 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
的高度。