本文整理自网络,侵删。
在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到Memo1var 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要复制ASTRINGvar 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 opendialog1 savedialog1 默认路径
decodedate:从一个tdatetime变量中提取年、月、日数值
Delphi getmimetype 查询文件mime类型函数
Delphi adoconnection连接 sqlserver
更多相关阅读请进入《Delphi》频道 >>