Stringlist排序进度条

use*_*495 0 delphi sorting listbox delphi-4

我有一个TListBox,加载时可以有一个很长的字符串列表,所以我让操作员通过单击按钮启动一个排序.有时排序可能需要一分钟,操作员仍然想知道发生了什么.

有什么方法可以使用TProgressBar来表明发生了什么事吗?如果是这样,怎么样?

要么

我可以在开始时使用灰色(视觉上禁用)屏幕,然后在完成排序时将颜色变回白色吗?如果是这样,怎么样?

谢谢

Dav*_*nan 8

我相信你的根本问题是你使用视觉控件作为容器.对容器内的列表进行排序将会产生糟糕的性能.将60,000个字符串放入a中TStringList,您就可以立即对它们进行排序.

您可以在虚拟模式下操作,而不是将项目保存在可视控件中.这将是最有效的运作方式.

如果您进行了这些更改,那么您将不需要进度条.