随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253

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;
//待续...
posted on 2007-11-24 23:04  万一  阅读(...)  评论(...编辑  收藏