我有一个字符串数组,我想将其放入 TListBox (FMX) 中以供选择。 TListBox 的属性不包括行的 TextSetting 属性,但我已经看到每个 TList 项都有它。 如何将每一行作为对象访问? 我试过这个
BatchSets_ListBox.Items.BeginUpdate;
BatchSets_ListBox.Items.Clear;
For i := 0 to (Length(MyList) - 1) do
Begin
BatchSets_ListBox.Items.Add(MyList[i].BATCH_SET_NAME);
BatchSets_ListBox.ListItems[BatchSets_ListBox.Items.Count].TextSettings.Font.Size := 18;
End;
BatchSets_ListBox.Items.EndUpdate;
但它不起作用,它在尝试访问 ListItems 的行上显示 ACCESS VIOLATION。 我做错了什么? TLitBox 中不应该有一个存储 Items 的 ListItems 对象吗? 感谢您的帮助。
你的问题是这一行:
BatchSets_ListBox.ListItems[BatchSets_ListBox.Items.Count].TextSettings.Font.Size := 18;
您正在访问一个不存在的项目。 TListBox.ListItems 的有效索引是 [0..Count-1] 而不是 [1..Count],即。索引从 0 开始,因此包含两个项目的列表框的有效索引为 0 和 1。