Как узнать положение курсора в TMemo и TRichEdit
Для выполнения следующего кода поместите TRichEdit, TButton и три TLabel. При выполнении этого кода и при нажатии кнопки, в TLabel будут отображаться номер строки, длина строки и положение курсора.
procedure TForm1.Button1Click(Sender: TObject); var LPos,CPos,LineLenght: integer; begin Lpos:= SendMessage(RichEdit1.Handle, EM_LINEFROMCHAR, RichEdit1.Selstart, 0); CPos:= SendMessage(RichEdit1.handle, EM_LINEINDEX, lpOS, 0); LineLenght:= SendMessage(RichEdit1.HANDLE, EM_LINELENGTH, CPos, 0); CPos:= RichEdit1.Selstart-CPos; Label1.Caption:= IntToStr(Lpos); Label2.Caption:= IntToStr(LineLenght); Label3.Caption:= IntToStr(Cpos); end;
Данный пример показан для компонента TRichEdit. В случае с TMemo нужно заменить соответственно RichEdit на Memo.
Комментарии