网上求Memo/RichEdit中的行、列的文章比较多,但是根据行列号定位光标的比较下:
求行列号
var
i, j, iRow, iCol: longint;
begin
i := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);
begin
i := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);
j := SendMessage(Memo1.Handle, EM_LINEINDEX, i,0);
iRow := i + 1;
iCol := Memo1.SelStart - j;
根据iRow, iCol设定光标
Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, iRow - 1, 0) + iCol ;
Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, iRow - 1, 0) + iCol ;