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也可以高速读取大量字符串。

相关阅读 >>

Delphi edit右键系统菜单加自定义菜单项

Delphi webbrowser执行脚本

Delphi hexstrtostream

Delphi idhttp使用代理ip

Delphi tgpimage 把图像转存为其他格式

Delphi获取注册表run下所有值

Delphi中使用汇编(关于pos函数的问题)

Delphi 如何判断一个exe文件是否运行

Delphi 快捷键

Delphi指针长度

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...