Memo 的当前行、当前列与当前字符
Memo 的当前行、当前列与当前字符
涂孟超 发表于3年前
Memo 的当前行、当前列与当前字符
  • 发表于 3年前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

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;
//待续...
共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: