码迷,mamicode.com
首页 > 其他好文 > 详细

RichView段落缩进

时间:2014-10-08 15:46:35      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   ar   for   sp   div   art   c   

段落缩进
在输入文字的过程中,如果按下回车键,新成生的段落会与当前段落对齐,下面例子只处理了回车,如果要实现自动换行时也达到同样效果,可以在其文字录入事情中作相同处理!
实现过程主要是通得到当前光标所在段落(行)前面的空格数,然后在新段落头中插入同相的数目的空格
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; 

RichView段落缩进

标签:style   color   io   ar   for   sp   div   art   c   

原文地址:http://www.cnblogs.com/textword/p/4010933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!