快速对Memo或者RichEdit内的文字进行批量操作

操作多行edit(如memo,richedit)的lines,由于memo和richedit没有锁定(例如beginupdate)的功能,所有操作都会在界面反映,导致速度较慢,可以将lines.text赋给一个stringlist然后操作stringlist,最后将text赋值回去,举一个去除空行的例子:
var
  sl:TStrings;
  i,j,k:Integer;
  S:string;
begin
  sl:=TStringList.Create;
  //sl:=ed1.Lines;//千万不可这样赋值,这样是将ed1.Lines的指针(是不是?)赋给了sl,操作sl等同操作lines不但没有达到我们的目的还会在后面导致av错误
  sl.Text:=ed1.Lines.Text;
  with sl do
  begin
    i:=0;
    while i < Count do
    begin
      s:=sl[i];
      j := Length(S);
      k:=j;
      while (J > 0) and (S[J] <= ' ') do Dec(J);
      if j=0 then
        Delete(i)
      else
      begin
        if j<k then sl[i]:= Copy(S, 1, J);
        inc(i);
      end;
    end;
  end;
  ed1.Lines:=sl;
  sl.Free;
end;

后记:

惭愧惭愧,看到我的博客居然还有几个朋友关注和订阅,觉得不发点什么实在对不起他们,赶快从自己的代码里面找了一段。

 

再惭愧,memo等的lines有beginupdate。呵呵这段时间看KOL看多了,思考都扁平化了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值