--- ---
To determine the position of the cursor in a memo you should use messages, like in the example below.
var Row, Col: Integer; begin Row := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0); Col := Memo1.SelStart - SendMessage(Memo1.Handle, EM_LINEINDEX, Row, 0); Label1.caption := 'Row= ' + IntToStr(Row+1) + ' Col= ' + IntToStr(Col+1); end;