DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: a1367230164
今日帖子: 23
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 carait (小诗魔) ★☆☆☆☆ -
普通会员
2012/4/1 21:46:53
标题:
memo如何自动排版? 浏览:1520
加入我的收藏
楼主: 要求:
1、首字自动两个空格
2、每个回车自动换一行
3、去掉多余的空格和回车,使memo中只留下排版过的文字。

在下新人一枚,还望各位大侠给出完整的代码,十分感谢!
----------------------------------------------
-
作者:
男 tulater (tulater) ★☆☆☆☆ -
普通会员
2012/4/2 10:50:39
1楼: Var
  i, aLine, LineJ, lineK: Integer;
  tmpWideStr: WideString;
  tmpStr: String;
  aStrList: TStringList;

  Begin
    aStrList := TStringList.Create;
    aStrList.Text := Memo1.Lines.Text;
    aLine := aStrList.count;
    For i := aLine - 1 Downto 0 Do
    Begin
      tmpWideStr := Trim(aStrList.Strings[i]); //前后空格

      tmpStr := Trim(aStrList.Strings[i]); //前后空格
      tmpStr := StringReplace(tmpStr, ' ', '', [rfReplaceAll]); //全角空格
      tmpStr := StringReplace(tmpStr, #9, '', [rfReplaceAll]); //TAB

      If tmpStr <> '' Then
      Begin
        For LineJ := 1 To Length(tmpWideStr) Do
        Begin //从前往后去空
          If (tmpWideStr[LineJ] <> ' ' {全角空格})
          And (tmpWideStr[LineJ] <> #9 {TAB}) Then
          Begin

          For lineK := Length(tmpWideStr) Downto 1 Do
          Begin //从后往前去空
          If (tmpWideStr[LineJ] <> ' ' {全角空格})
          And (tmpWideStr[LineJ] <> #9 {TAB}) Then
          Begin
          aStrList.Strings[i] := '    ' + Copy(tmpWideStr, LineJ, lineK - lineJ + 1);
          Break;
          End;
          End;
          Break;
          End;
        End;
      End
      Else
  {tmpWideStr = ''} aStrList.Delete(i);
    End;

    aLine := aStrList.count;
    For i := aLine - 1 Downto 1 Do
    Begin //每一段落加一空行 以便阅读
      aStrList.Insert(i, '');
    End;
    Memo1.Lines.Text := aStrList.Text;
    Memo1.Repaint;
    aStrList.Free;

  End;
----------------------------------------------
http://www.cnblogs.com/tulater/
作者:
男 yy251745080 (今夕望月) ▲▲▲▲▲ -
普通会员
2012/4/2 14:31:51
2楼: 这个是每一行都加2空格,每两句之间都加空行啊。
----------------------------------------------
-
作者:
男 carait (小诗魔) ★☆☆☆☆ -
普通会员
2012/4/2 15:12:46
3楼: 十分感谢,正是我要的
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行58.59375毫秒 RSS