zoukankan      html  css  js  c++  java
  • 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; 
  • 相关阅读:
    资源链接
    Silverlight4 RIA应用开发
    社会心理学(第8版)
    C# 2.0 锐利体验
    C# 3.0 锐利体验
    C#面向对象设计模式纵横谈
    ASP.NET MVC2程序开发入门到精通
    Silverlight数独游戏
    StringBuilder研究和探索
    .NET 开发从入门到精通
  • 原文地址:https://www.cnblogs.com/textword/p/4010933.html
Copyright © 2011-2022 走看看