Внешний вид сайта:

Как узнать положение курсора в TMemo и TRichEdit

Компоненты TMemo и TRichEdit не располагают никаким свойством или методом, которые облегчали бы указание положения курсора в этих компонентах. Это можно сделать посредством функции SendMessage.

Для выполнения следующего кода поместите 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.

Комментарии

Нет комментариев. Ваш будет первым!