【发布时间】:2017-10-28 14:46:20
【问题描述】:
我在 TMemo 中有 100000 行。我想做类似的事情:
for i:= 0 to Memo.Lines.Count-1 do
Memo.Lines[i]:= SomeTrim(Memo.Lines[i]);
但是速度是每秒0.5行!!
添加 BeginUpdate/EndUpdate 后,我看不到任何速度提升。
Memo.Lines.BeginUpdate;
for i:= 0 to Memo.Lines.Count-1 do
Memo.Lines[i]:= SomeTrim(Memo.Lines[i]);
Memo.Lines.EndUpdate;
我的问题是为什么 BeginUpdate/EndUpdate 没有帮助?
【问题讨论】:
-
可怜的用户会滚动这样的备忘录。
-
PS:目前的解决方案是将这些行分配给一个TStringList,处理它们,然后将它们放回备忘录中。但我仍然很好奇为什么 BeginUpdate 不起作用。
-
@Victoria - 用户会将这些行放在那里。通常,我预计不到 100 行。我想测试一下 100000 会发生什么。这就是发生的事情。
-
这是一个 GUI 控件。它不是为文本处理而设计的。
标签: delphi delphi-xe7