【发布时间】:2013-12-06 10:58:53
【问题描述】:
我试图在添加/编辑条目后触发对 TListBox 控件中的项目的排序。
我看到有一个 Sorted 属性我已设置为 true,但是,这不会在我每次更改时动态排序 ListBox内容。似乎没有任何 Sort 过程或函数可用,并且调用 Update 或 Refresh 没有达到预期的效果。
我已经到了考虑将 ListBox 的内容拉入 TStringList 对象的阶段,对其进行排序,然后将所有内容放回 列表框。不过,这似乎有点疯狂,我肯定忽略了一些更好的方法。
以下是更改现有项目的示例:
myListBox.Items[myIndex] := newString; // Update Text
myListBox.Items.Objects[myIndex] := TObject(my_object); // Update associated object
我希望控件会更新以保持按字母顺序排序,但事实并非如此。
【问题讨论】:
-
ListBox.Sorted := True在这里工作正常,正如您所愿。您需要显示代码。 -
你不能像这样通过它的位置改变项目,你必须删除并重新添加
标签: delphi sorting delphi-7 tlistbox