delphi VCL TMemo加速字符串读取  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

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

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.11259698867798 seconds