方法一:
在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;