• RichView段落缩进


    段落缩进
    在输入文字的过程中,如果按下回车键,新成生的段落会与当前段落对齐,下面例子只处理了回车,如果要实现自动换行时也达到同样效果,可以在其文字录入事情中作相同处理!
    实现过程主要是通得到当前光标所在段落(行)前面的空格数,然后在新段落头中插入同相的数目的空格
    function GetLeadingSpacesCount(rve: TCustomRichViewEdit): Integer; 
    var StartItemNo, ItemNo, i: Integer; 
        s: String; 
    begin 
      rve := rve.TopLevelEditor; 
      ItemNo := rve.CurItemNo; 
      while not rve.IsParaStart(ItemNo) do 
        dec(ItemNo); 
      Result := 0; 
      StartItemNo := ItemNo; 
      while ItemNo
        if (ItemNo>StartItemNo) and rve.IsParaStart(ItemNo) then 
          exit; //如果在段落头则不处理
        if rve.GetItemStyle(ItemNo)<0 then //如果不是文字也不处理
          exit; 
        s := rve.GetItemText(ItemNo); 
        for i := 1 to Length(s) do 
          if s[i]=' ' then 
            inc(Result) //计算空格数
          else 
            exit; 
        inc(ItemNo); 
      end; 
    end; 
    //通过空格数返回字符个数,空格也是字符
    function GetSpaces(Count: Integer): String; 
    var i: Integer; 
    begin 
      SetLength(Result, Count); 
      for i := 1 to Count do 
        Result[i] := ' '; 
    end;
     
    最后在KeyDown下面实现
     if Key=VK_RETURN then begin 
        RichViewEdit1.InsertText(#13+GetSpaces(GetLeadingSpacesCount(RichViewEdit1))); 
        Key := 0; 
      end; 
  • 相关阅读:
    人生长度的认识(死亡方格)
    如何才能更早的有自己的一点成就
    自制Jquery下拉框插件
    自定义Jquery 下拉框
    自定义Jquery分页插件
    Java 连接 mysql 数据库
    Git 操作分支
    CSS 循环动画效果。
    React 从0开始 消息传递
    MVC in Javascript
  • 原文地址:https://www.cnblogs.com/textword/p/4010933.html
Copyright © 2020-2023  润新知