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出现 no mapping for the unicode character exists in the target multi-byte code page 处理方法

Delphi 如何在webservice中获取客户端的ip地址

Delphi中编写无输出函数名的dll文件

Delphi opendialog1 savedialog1 默认路径

decodedate:从一个tdatetime变量中提取年、月、日数值

Delphi getmimetype 查询文件mime类型函数

Delphi adoconnection连接 sqlserver

Delphi中in的使用

Delphi 双击richedit高亮所有关键字

Delphi创建桌面快捷方式及锁定任务栏等功能

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



打赏

取消

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

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

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

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

评论

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