获得Richedit的行与列

来源:互联网 发布:opencv实现分水岭算法 编辑:程序博客网 时间:2024/05/29 07:27

方法一:

在Richedit的onselectchange事件中加入:
var row,col:integer;
begin
with richedit1 do
begin
//获得选区开始处的行号
row:=sendmessage(handle,EM_linefromchar,selectstart,0);
//获得列号
col:=selstart-sendmessage(handle,EM_lineindex,row,0);
statusbar1.panels[0].text:=format(('%D行 %D列'),[row,col]);
end;

方法二:

var
LineNum:longint;
CharsBeforeLine:longint;
begin
LineNum := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,LineNum,0);
edit2.Text:=(inttostr(linenum+1)+'行'+IntToStr((Memo1.SelStart -CharsBeforeLine)+1)+'列');
end;

原创粉丝点击