- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi VCL TMemo加速字符串读取
在Delphi的VCL中使用TMemo读取大量字符串时,您编写的代码通常如下。
procedure StringToMemo(AMemo:TMemo;AString:String); // Memo1复制ASTRING到
begin
AMemo.Lines.BeginUpdate;
AMemo.Lines.Text:=ASring;
AMemo.Lines.EndUpdate;
end;
另外,当通过TStringList传递一个巨大的字符串时:
procedure StringToMemo(AMemo:TMemo;AString:String); //复制ASTRING到Memo1
var
lSL:TStringList;
begin
lSL:=TStringList.Create;
lSL.Text:=AString;
AMemo.Lines.Assign(lSL);
lSL.Free;
end;
通过Assign传递时,不需要BeginUpdate / EndUpdate。在“分配”代码中使用。
但是,如果传递给TMemo的字符串变大,它将变慢。
当我在网上搜索时,我发现当我使用TMemo的LoadFromFile传递文本文件时,它以高速显示。在那种情况下,我认为我应该使用LoadFromStream传递字符串。
所以我考虑了以下代码。
procedure StringToMemo(AMemo:TMemo;AString:String); // Memo1要复制ASTRING
var
lStrStream: TStringStream;
begin
lStrStream:=TStringStream.Create(Astring);
AMemo.Lines.LoadFromStream(lStrStream);
lStrStream.Free;
end;
LoadFromStream也不需要BeginUpdate / EndUpdate。
现在,即使是VCL TMemo也可以高速读取大量字符串。