获得RichEdit的当前光标位置

 在RichEdit的OnSelectionChange事件处理过程中加入适当的代码可以实时地获得当前光标位置,示例如下:

procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
var
  X, Y: LongInt;
begin
  Y := SendMessage(RichEdit1.Handle, EM_LINEFROMCHAR,
    RichEdit1.SelStart, 0);
  X := RichEdit1.SelStart -
    SendMessage(RichEdit1.Handle, EM_LINEINDEX, Y, 0);
  Inc(Y);  // 光标的行号
  Inc(X);  // 光标的列号
end;

你可能感兴趣的:(光标位置)