登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

Memo 的当前行、当前列与当前字符  

2016-12-27 19:42:27|  分类: delphi 10 seattl |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//delphi 方法:
procedure TForm1.Memo1Click(Sender: TObject);
begin
  Text := Format('当前列:%d, 当前行:%d', [Memo1.CaretPos.X, Memo1.CaretPos.Y]);
end;

//用 API 实现
procedure TForm1.Memo1Click(Sender: TObject);
var
  LineY,LineX: Integer;
begin
  LineY := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
  LineX := SendMessage(Memo1.Handle,EM_LINEINDEX,LineY,0);
  Text :=  '当前行:' + IntToStr(LineY) + '; ' +                  //0开始
          '当前列:' + IntToStr(Memo1.SelStart - LineX) + '; '//0开始
          '当前字符:' + IntToStr(Memo1.SelStart) + '. ';          //包括#13#10
end;


//统计字数 //添加 Memo1、Label1、Label2、还有Button1 
procedure TForm1.Button1Click(Sender: TObject); 
var   s: string;   i,sum,e,c,t: Integer;
begin
   s := Memo1.Text;
   e :=
0;   c := 0;
   sum := Length(s);
   
for i := 0 to sum do
   begin
     if (Ord(s[i]) >= 33) and (Ord(s[i]) <= 126) then
     begin
       Inc(e);
       Label1.Caption :=
'字母数: ' + IntToStr(e);
     
end;
     
if Ord(s[i]) >= 127 then
     begin
       Inc(c);
       Label2.Caption :=
'汉字数: ' + IntToStr(c div 2);
     
end;
   
end;
  
end;
  评论这张
 
阅读(314)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018